環境
Docker version 20.10.7
docker-compose version 1.29.2
状況
Dockerを起動してもすぐに落ちる
% docker-compose up -d
Creating XXXXX_db_1 ... done
Creating XXXXX_redis_1 ... done
Creating XXXXX_worker_1 ... done
Creating XXXXX_app_1 ... done
Creating XXXXX_webpacker_1 ... done
Creating XXXXX_web_1 ... done
% docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
XXXXXXXXXXXX XXXXX_web "/docker-entrypoint.…" 4 seconds ago Up 2 seconds 80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp XXXXX_web_1
XXXXXXXXXXXX XXXXX_webpacker "/bin/bash -c 'rm -r…" 4 seconds ago Exited (7) 2 seconds ago XXXXX_webpacker_1
XXXXXXXXXXXX XXXXX_app "/bin/bash -c 'rm tm…" 5 seconds ago Exited (7) 2 seconds ago XXXXX_app_1
XXXXXXXXXXXX XXXXX_worker "/bin/bash -c 'bundl…" 5 seconds ago Exited (7) 2 seconds ago XXXXX_worker_1
解決法
Docker Desktopでログを確認すると下記のエラー
Could not find XXXXX in any of the sources
Run `bundle install` to install missing gems.
指示どおりbundle install
実行
次のコマンドでbundle installしようとするので、Gemfileを更新したらbuildし直す
% docker-compose build
次のエラー出現
The git source https://github.com/XXX/XXXXXXXXXXXXX.git is not yet checked out. Please run `bundle install` before trying to start your application
Gemfile修正
gem 'XXXXXXXXXXXXX', github: 'XXX/XXXXXXXXXXXXX'
↓
gem 'XXXXXXXXXXXXX', git: "https://github.com/XXX/XXXXXXXXXXXXX"
ここでDockerfile内でbundle installしないと意味ないことに気づく…
% docker-compose run app bundle install
もう一度buildしてupしてみる
% docker-compose build
% docker-compose up -d
成功!!
参考