Closed6

Rails7 + Docker の初期構築 & つまり所メモ

HTMLGOHTMLGO

(1)
touch Dockerfile
(中身を書く)

(2)
touch docker-compose.yml
(中身を書く)

(3)
touch Gemfile
(中身を書く)

(4)
touch Gemfile.lock
(中身を書く)

(5)
touch entrypoint.sh
(中身を書く)

(6)

docker-compose run web rails new . --database=mysql --javascript esbuild --css tailwind

(コンフリクトが起きたファイルについてはどうするか Y, Nで指定する)

(7)
Procfile.dev に以下を記述
-b 0.0.0.0 がないとアクセスできない

web: bin/rails server -p 3000 -b 0.0.0.0
js: yarn build --watch
css: yarn build:css --watch

(8)
database.yml に以下を記述

default: &default
  adapter: mysql2
  encoding: utf8mb4
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  username: root
  password: mysql
  host: db

(9)
dbを作成。(ブラウザからボタンポチでもいける)

docker-compose run web rake db:create

(10)
起動

docker-compose up
HTMLGOHTMLGO

うまく動かない時

docker ps

で、止まっているコンテナーを確認

docker compose logs

で、エラーを確認する

HTMLGOHTMLGO

よくあるやつは、パッケージがインストールされてない系。
以下でそれぞれをインストールする

docker compose run --rm web yarn install
docker compose run --rm web bundle install
HTMLGOHTMLGO

あとは、イメージをビルドし直したり、

docker compose build --no-cache

volumeを削除してから、起動しなおしてみる

docker volume ls
docker volume rm ⚪︎⚪︎⚪︎⚪︎⚪︎⚪︎⚪︎⚪︎⚪︎⚪︎⚪︎⚪︎

そのプロジェクトのvolume全て削除したい場合は

docker compose down -v

https://qiita.com/Ikumi/items/b319a12d7e2c9f7b904d

HTMLGOHTMLGO

設定ファイル関係は、修正後再起動が必要な場合がある

docker compose restart
このスクラップは2024/03/29にクローズされました