🐳
docker-compose で exit with status 0 の解決法
解決法 1
調べた限り、一番の王道ぽい。
docker-compose.yml に以下を追記する。
tty: true
ただ自分の場合、変わらずexit with status 0
になってしまった。
tty: true
はコンテナを起動し続けるオプションとのこと。
解決法 2
こちらも王道
docker-compose.yml に以下を追記する。
stdin_open: true
こちらは上手くいった。
しかし、起動時にシェルスクリプトを走らせるとexit with status 0
に戻ってしまった。
ちなみにstdin_open: true
は 標準入出力とエラー出力をコンテナに結びつける役割らしい。
docker run -it コンテナの名前
の -i
解決法 3
docker-compose.yml に以下を追記する。
command: tail -f /dev/null
こちらも上手くいった。
つまり、なにかコンテナ内でコマンドが走り続けていればいい
?
docker-compose up
を走らせるとAttaching to コンテナの名前
となって起動状態が維持された。
まとめ
情報がバラけていたので、まとめてみました。
docker-composeコマンドがdockerコマンドのオプションになると聞いたんですが、どうなんですかね?
環境
- MacBook Air (M1, 2020)
- Docker version 20.10.8, build 3967b7d
- docker-compose version 1.29.2, build 5becea4c
Discussion