2
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

既存アプリの環境をdockerで、さっと構築しよう

Last updated at Posted at 2018-08-15

##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」が出たはずです。

スクリーンショット 2018-04-20 20.50.21.png

##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ができました!

では、もう一度http://localhost:3000/にアクセスして、表示を確認しましょう!

dev8.jpg

2
6
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?