RubyonRails HerokuでHelloWorldするまで
前提:
Ruby・Rails・git・herokuツールベルトをインストールしている。
(筆者はCloud9使用。Ubuntu。)
Herokuの会員登録を終えている。
まず適当なアプリを作る。
Cloud9ならすでにあるのでこの工程は要らない。
$ rails new myapp $ cd myapp
Gemfileを下のように書き換える。
(Railsチュートリアルそのまま)
source 'https://rubygems.org' gem 'rails', '5.0.0.1' gem 'puma', '3.4.0' gem 'sass-rails', '5.0.6' gem 'uglifier', '3.0.0' gem 'coffee-rails', '4.2.1' gem 'jquery-rails', '4.1.1' gem 'turbolinks', '5.0.1' gem 'jbuilder', '2.4.1' group :development, :test do gem 'sqlite3', '1.3.11' gem 'byebug', '9.0.0', platform: :mri end group :development do gem 'web-console', '3.1.1' gem 'listen', '3.0.8' gem 'spring', '1.7.2' gem 'spring-watcher-listen', '2.0.0' end group :production do gem 'pg', '0.18.4' end
bundle installする。
$ bundle install --without production
赤文字でエラーが出たら読んでみる。
'bundle update'がどうとか書いてたら
$ bundle update
を叩けばOK。
終わったら改めてbundle installする。
controllers/concerns/application_controller.rbを下のように書き換える。
class ApplicationController < ActionController::Base protect_from_forgery with: :exception def hello render html: "hello, world!" end end
config/routes.rbを下のように書き換える。
Rails.application.routes.draw do root 'application#hello' end
gitの初期設定。
$ git config --global user.name 名前 $ git config --global user.email メールアドレス
heroku設定。
$ heroku login $ heroku keys:add
myapp直下でgit initする。
$ git init
ステージに上げてコミット。
$ git add -A $ git commit -m "hello, world!"
heroku側でアプリ作成。
自動的にgitに紐づくようなのでそのままpush。
$ heroku create $ git push heroku master
ターミナルに出てくるURLにアクセス。
参考:
railstutorial.jp
ORACLE 桁を揃えるLPAD
111
こいつを四桁にしたいとき。
足りない桁は頭に0を入れて保管する。
最初NUMBER型とする。
LPADの書き方は
LPAD('文字列', 桁数 , '補完文字')
桁数は数値型なので''(シングルクオーテーション)はつけない。
NUMBERの111をTO_CHARしてLPADする。
SELECT LPAD(TO_CHAR(111), 4, '0') FROM DUAL
ORACLE NUMBER型の日付を文字列yyyy/MM/dd表記で表示する
20110401
NUMBER型のこいつを書式を整えて表示する方法。
まず、TO_DATEしたいのだけど、TO_DATEの書き方は
TO_DATE('文字列', '書式')
なので、NUMBER型の20170401をまずTO_CHARする。
TO_CHAR(20170401)
それからTO_DATEをかける。
TO_DATE(TO_CHAR(20110401), 'yyyyMMdd')
TO_CHARの日付書式変換の書き方は
TO_CHAR('文字列', '書式')
で、こうなる。
TO_CHAR(TO_DATE(TO_CHAR(20110401), 'yyyyMMdd'), 'yyyy/MM/dd')
テキトーにテスト表示したければ、
SELECT TO_CHAR(TO_DATE(TO_CHAR(20170401), 'yyyyMMdd'), yyyy/MM/dd) FROM DUAL
A server is already running と出て rails server できないとき
$ rails s => Booting Puma => Rails 5.0.0.1 application starting in development on http://localhost:8080 => Run `rails server -h` for more startup options A server is already running. Check /home/ubuntu/workspace/sample_app/tmp/pids/server.pid. Exiting
こんなん出た。
よく読むとなんか書いてる。
A server is already running. Check /home/ubuntu/workspace/sample_app/tmp/pids/server.pid.
言われた通り server.pid をチェックする。
というか消す。
pids まで行って、
$ sudo rm server.pid
これで rails s したら無事動いた。
Docker 自分的最低限コマンドメモ
拙くてもとりあえず作って捨てられる開発環境があれば良しの精神。
$ sudo docker pull centos:7 $ sudo docker images
centOS7のDockerイメージを取得。
及び取得したDockerイメージの確認。
$ sudo docker ps $ sudo docker ps -a
コンテナ一覧。
-a付けると動作終了したコンテナも見れる。
$ sudo docker run -it --name myCentOS centos:7 /bin/bash $ sudo docker run -d -i --name myCentOS -p 3000:3000 -t centos:7 /bin/bash
コンテナの作成(名前つけて作成もしてるよね?これ)・起動して中に入る。
そしてポートフォワーディングの場合(まだ試してない)。
$ exit
コンテナから出る。コンテナは終了する。
$ sudo docker start myCentOS
名前かIDを指定してコンテナを再開。
$ sudo docker attach myCentOS
再開したコンテナに入る。
$ sudo docker rm myCentOS
コンテナの破棄。
CentOS(6.8)でDocker導入
タイトル通り。
$ su $ yum -y update
けっこう待つ。
終わったら、
$ sudo rpm --import http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-6 $ sudo yum -y install http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm $ sudo yum -y install docker-io
ここまでで導入は完了。
早速動かしてみる。
$ sudo service docker start $ sudo chkconfig docker on
下のコマンドはたぶん自動起動の設定的なやつ。
さくらのVPSでCentOSを再インストールしたら WARNING:REMOTE HOST IDENTIFICATION HAS CHANGED! と出て入れない
さくらのVPSで全部やり直したくなったのでCentOSを入れ直したら
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
こういうクソでかエラーが出てつながらないとき。
おそらく以前作った秘密鍵と現在(再インストール後)のVPSサーバー側の公開鍵が合致しないのが原因。
ターミナルで以下をたたく。
$ ssh-keygen -R [サーバのIPアドレス]
これで繋がった。
参考
qiita.com