##1.GitHubからデータを持ってくる
にアクセスして下さい。
緑色の「Clone or download」ボタンを押し、URLをコピーして下さい。
そして、ターミナルを開き、デスクトップに移動して下さい。
$ cd Desktop
移動できたら、git cloneと先ほどコピーしたURLを使ってデスクトップにクローンします。
$ git clone https://github.com/WatanabeKazuyoshi/docker_training_180421.git
Cloning into 'docker_training_180421'...
remote: Counting objects: 200, done.
remote: Compressing objects: 100% (155/155), done.
remote: Total 200 (delta 10), reused 200 (delta 10), pack-reused 0
Receiving objects: 100% (200/200), 683.96 KiB | 1.04 MiB/s, done.
Resolving deltas: 100% (10/10), done.
デスクトップを確認して下さい。
「docker_training_180421」フォルダができているはずです。
##2.「docker-compose up」しよう
「docker_training_180421」フォルダの中身をみて下さい。
「testapp」フォルダと「docker-compose.yml」ファイルがあるはずです。
▼testappフォルダ
アプリのデータが入ったフォルダ
▼docker-compose.ymlファイル
dockerでの環境設定が書いたファイル
「docker-compose.yml」は、アプリの初期作成者が作ることが多く、
このファイルがあれば、docker上で簡単に環境構築ができます。
では、ターミナルで「docker-compose.yml」があるディレクトリに移動します。
$ cd docker_training_180421
lsコマンドでカレントディレクトリにあるファイルを確認します。
$ ls
docker-compose.yml testapp
ちゃんと「docker-compose.yml」があります。
ここで、「docker-compose.yml」に対しdocker-compose up -dで環境構築&コンテナの起動を行います。
$ docker-compose up -d
Creating network "dockertraining180421_default" with the default driver
Creating dockertraining180421_db_1 ... done
Creating dockertraining180421_app_1 ... done
docker psで起動中のコンテナを確認しましょう。
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cf1827a9beb8 rails:5 "irb" 5 minutes ago Up 5 minutes 0.0.0.0:3000->3000/tcp dockertraining180421_app_1
45004b1a7a78 mysql "docker-entrypoint.s…" 5 minutes ago Up 5 minutes 3306/tcp dockertraining180421_db_1
##3.Railsサーバーを起動しよう
railsのコンテナに入ります。
$ docker exec -it dockertraining180421_app_1 /bin/bash
「docker-compose.yml」で、共有されているディレクトリに移動します。
# cd home
Rails サーバーを起動します。
# rails s
Your bundle is locked to rake (12.3.1), but that version could not be found in any of the sources listed in your Gemfile. If you haven't changed sources, that means the author of rake (12.3.1) has removed it. You'll need to update your bundle to a different version of rake (12.3.1) that hasn't been removed in order to install.
Run `bundle install` to install missing gems.
bundle installしてくれと言われるので、します。
# bundle install
Fetching gem metadata from https://rubygems.org/.........
Fetching version metadata from https://rubygems.org/..
Fetching dependency metadata from https://rubygems.org/.
-省略-
Bundle complete! 15 Gemfile dependencies, 63 gems now installed.
Bundled gems are installed into /usr/local/bundle.
railsのGemfileを使って諸々インストールしました。
(Gemfileはrailsの話なので省略します)
ここで、もう一度railsサーバーを起動します。
# rails s
=> Booting Puma
=> Rails 5.0.7 application starting in development on http://localhost:3000
=> Run `rails server -h` for more startup options
Puma starting in single mode...
* Version 3.11.4 (ruby 2.3.3-p222), codename: Love Song
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://0.0.0.0:3000
Use Ctrl-C to stop
起動できました!
それでは、もう一度http://localhost:3000/にアクセスして、表示を確認しましょう。
どうやら繋がっているようですが「NoDatabaseError」が出たはずです。
##4.RailsからDBを作ろう
データベースがないと怒られたので、Rails側からデータベースを作ります。
今のターミナルはそのままで(railsサーバーを起動したまま)、新しいターミナルを開いて下さい。
Rails側からデータベースを作りたいので、もう一度railsコンテナに入ります。
$ docker exec -it dockertraining180421_app_1 /bin/bash
railsがいるディレクトリに移動します。
# cd home
ここでrailsのコマンドrake db:createとrake db:migrateでDBを作ります。
# rake db:create
Created database 'testapp_development'
Created database 'testapp_test'
# rake db:migrate
#
DBができました!