DockerでRuby on Railsの開発をしよう
https://qiita.com/saitoeku3/items/b1aa2ae143624e551aea
Dockerfileについて
https://qiita.com/tanan/items/e79a5dc1b54ca830ac21
_
docker-compose run web bundle exec rails new . --force --database=mysql --skip-bundle
docker-compose build
docker-compose up -d
-> localhost:3000
Dockerfile
| コマンド |
意味 |
| FROM |
ベースとなるDockerイメージを指定 |
| ENV |
環境変数を設定 |
| RUN |
shellの実行を行う |
| WORKDIR |
起点となるディレクトリを設定 相対パスを使うときに起点になる |
| ADD |
ファイル、ディレクトリなどをコンテナの指定されたパスにコピー |
docker-compose.yml
web
| コマンド |
意味 |
| build |
コンテナを構築するDockerfileがあるディレクトリを指定 |
| ports |
ポートの番号を指定 |
| command |
コンテナをビルドしたときに実行するコマンド |
| volumes |
ホスト上のプロジェクト用のディレクトリを、コンテナ内の /myapp にマウントし、イメージを再構築しなくてもコードの変更が行えるようにする |
| depens_on |
リンクするサービス(ここではdb) |
db
| コマンド |
意味 |
| image |
データベースとして必要なイメージを指定 ない場合はpullしてくる |
| environment |
環境変数を追加(ここではMySQLのパスワードを設定) |
| ports |
webとほぼ同様 |
| volumes |
webとほぼ同様 |
よく使うコマンド:Docker
# 今あるイメージを確認
docker images
# イメージの削除
docker rmi image_id
# コンテナの確認(-aなしだと起動中のコンテナのみ)
docker ps -a
# コンテナの削除
docker rm container_id
よく使うコマンド:Docker Compose
# コンテナをビルド
docker-compose build
# コンテナの起動
docker-compose start
# コンテナの作成&起動
docker-compose up
# コンテナの停止
docker-compose stop
# コンテナの停止&削除
docker-compose down
# bundle installを実行 うまくいかないかも?
docker-compose exec web bundle install
# db関係(例)
docker-compose exec web rails db:create
# railsコマンド(例)
docker-compose exec web rails g controller controller_name