システム起動時に docker-compose up -d を実行するには?
起動時にコンテナを自動起動させるために、コマンドを追加してみた:
etc/rc.local に cd directory_has_docker-compose.yml && docker-compose up -d
というコマンドを追加してみた。
しかし、マシンを再起動すると、コンテナは動作しない。
システム起動時にどのように docker-compose up -d
を実行するのでしょうか?
79
6
crontab
または廃止された/etc/rc.local
ファイルを使用する場合、遅延が必要です(例:. 「マシンに応じて10インチスリープ」)、システムサービスが利用可能であることを確認します。 通常、「systemd」(または「upstart」)は、システムが起動したときに開始するサービスを管理するために使用されます。 これについても同様の構成を使用してみてください。。
または、「-d」フラグなしで実行したい場合:
。
'WorkingDirectory`パラメータをドッカライズされたプロジェクトパスで変更します。 そして、サービスが自動的に開始されるようにします。
。
追加できるはずだ:
を追加してください。
システムの起動時に「docker.service」が有効になっている場合。
docker-compose.yml
のサービスにはあります。コマンドを1回だけ実行すると、システムを再起動すると、すべてのサービスが実行されます。
restart:always`を試してみたところ、いくつかのコンテナ(php-fpmなど)ではうまくいったのですが、いくつかのコンテナ(nginxなど)では再起動しても再起動しないという問題に直面しました。
解決しました。
restart:常にを使用して、ドッカーでファイルを作成します。
Docker-compose up -d
は、画像からコンテナを再起動します。 停止したコンテナを起動するには、「ドッカー構成スタート」を使用します。画像から新しいコンテナを起動することはありません。また、他のコンテナに依存している場合は、最初に作成されるように、ドッカーファイルにコードを書き込むことができます。
user39544
'さんの回答に加えて、
crontab -e`の構文をもう1つ: