📘

Docker (Compose) で再起動ループ解消

2025/02/11に公開

Docker Compose を使用してコンテナを起動する際、tty: true が設定されていない場合、コンテナが 再起動ループ に陥ることがあります。

特に以下のような compose.yml を使用している場合に発生しやすいです。

services:
  app:
    image: debian:bullseye
    command: bash

この設定では、tty: true が指定されていないため、標準入力が閉じられたと認識され、コンテナが終了し、再起動を繰り返す ことがあります。

解決方法:tty: true を追加し、CMD に sleep infinity を設定

この問題を解消するには、tty: true を明示的に設定し、コンテナが不要なプロセスを実行せずに待機するよう commandsleep infinity を指定します。

version: '3.8'
services:
  app:
    image: debian:bullseye
    tty: true
    command: ["sleep", "infinity"]

この設定により、コンテナがバックグラウンドで動作し続け、再起動ループが発生しなくなります。

設定の確認

適用後、以下のコマンドでコンテナの状態を確認してください。

docker ps

STATUSUp となっていれば、正常に動作しています。

この方法を適用することで、tty: true を指定しないことによる意図しないコンテナの動作を防ぎ、安定して管理できます。

--
Let's happy coding!

Discussion