docker-compose
ファイル内のサービスを一時的に無効にしたいという状況に陥っています。
もちろんコメントすることもできますが、「enabled: false
」とだけ言うオプションはありますか?
docker-compose
ファイル内のサービスを一時的に無効にしたいという状況に陥っています。
もちろんコメントすることもできますが、「enabled: false
」とだけ言うオプションはありますか?
--no-deps
依存関係を開始したくない場合のオプションを試してみます。私はあなたが探しているものではないことを知っていますが、その逆です。
docker-compose -f docker-compose.yml -f another-docker-compose.yml up -d
。あなたはと結果のドッキングウィンドウのコンマージを確認することができconfigコマンド:docker-compose -f docker-compose.yml -f another-docker-compose.yml config
回答:
entrypoint
またはcommand
を再定義して、上記のコマンドを何もしないものに置き換えることができます(/bin/true
)
これにより、コンテナはすぐに終了し、何もしません。
shadiは、コメントに次のヒントを追加します。
サービスをまったくビルドしたくない場合は、ビルドキーを再定義して、次の
Dockerfile
ものだけを指すようにします。
FROM tianon/true
ENTRYPOINT ["/true"]
5andr0はコメントのトップレベルセクションを指摘していますx-disabled:
(拡張フィールドのような)を
はるかに便利:無効なサービスをトップレベルのセクションに移動する
x-disabled:
代わりににservices:
x-
接頭辞が付いたセクションは解析されますが、拡張フィールドとして意図された方法で使用されていない場合は無視されます。
restart: "no"
無限の再起動を回避するために追加/変更します
x-disabled:
のではなくservices:
あなたはdocker-compose.override.yaml
ファイルでそれをすることができます。
このファイルは自動的に読み取られdocker-compose
、mainにマージされdocker-compose.yaml
ます。
Gitから除外している場合、各開発者は元のを変更せずに構成を微調整できます(いくつかの制限があります)docker-compose.yaml
。
したがって、次のfoo
エントリポイントを再定義することで、サービスをアドホックで無効にすることができますdocker-compose.override.yaml
。
version: "3"
services:
foo:
entrypoint: ["echo", "Service foo disabled"]
export XXX_ENTRYPOINT=/bin/true
、その後`エントリポイント:[ "$ {XXX_ENTRYPOINT:-docker-entrypoint.sh}"]`
Dockerのcomposeyamlファイルで定義されたサービスを無効にする方法はありません。VonCの提案は良い回避策です利用可能なオプションについては、以下のdockercomposeドキュメントを参照してください https://docs.docker.com/compose/compose-file/
サービスを0個のレプリカにスケーリングします:deploy:replicas:0
残念ながら、ドキュメントに記載されているように、これはdockerswarmでのみ機能します。
docker-compose up
すると、デフォルトですべてのサービスが開始されます。ただし、実行docker-compose up myservice
すると、myserviceとそれに依存するものが開始されます。依存関係を設定することで、このコマンドで不正なサービスが開始されないようにすることができます。docker-compose run
必要なサービスだけを取得することもできます。正しい選択は、これを複数の作成ファイルに分割して、必要な柔軟性を実現することでもあります。