紹介する内容
- rails6開発環境をdockerでrails newから構築します
- rails6.0.3.2です
結論
- rails6開発環境をdockerでrails newから構築するなら、Dockerfileやentrypointの内容作成タイミングに気を付ける必要があります
紹介始めます
ディレクトリ構成
全体ソースコードは https://github.com/cheekykorkind/qiita-example/tree/master/rails/6/puma で確認できます
Rails6プロジェクト作成までの手順です
docker composeがあるデレクトリーに移動しました
cd qitta-example/rails/6/puma
Dockerfileとentrypoint.shにdbマイグレーション、puma起動コマンド部分なしで、rails起動させるdockerコンテナを起動しました
- railsをインストールするためです
- railsがインストールされてない状態でentrypoint.shの
bundle exec
コマンドでdb:create db:migrate
やrails s -p 3000 -b 0.0.0.0
などを行したらエラーになるからです
rails起動させるdockerコンテナに入りました
DOCKER_UID=$(id -u $USER) DOCKER_GID=$(id -g $USER) docker-compose up -d
docker exec -it rails-puma-web /bin/bash
rails newコマンドでインストールしました
rails new . -d postgresql
- postgres使いますからrails newコマンドにpostgresを含めました
database.ymlを修正しました
-
host
をdocker composeに合わせて調整しました - 他の部分も調整しました
Dockerfileとentrypoint.shにdbマイグレーション、puma起動コマンドを追加しました
- railsがインストールされたから、dbマイグレーション、puma起動コマンドが問題なく起動できます
Rails6動きました
実行コマンドです
cd qitta-example/rails/6/puma
DOCKER_UID=$(id -u $USER) DOCKER_GID=$(id -g $USER) docker-compose up