_docker-compose run
_ reference には、_--rm
_オプションが
実行後にコンテナを削除します。
これを_docker-compose.yml
_で指定する一部のサービスのデフォルトのrun
動作にしたい。
だから、質問は:
docker-compose.yml
_で何らかの形で指定できますか?(INB4 "bashエイリアスを使用、Luke!":もちろん、_docker-compose.yml
_の外で、_alias docker-compose-run='docker-compose run --rm'
_ですが、何らかの特別な方法ではなく、_docker-compose.yml
_を介してそれを正確に強制する方法に興味があります。)
TLDR:それはまだ不可能です2018-11; docker-compose down
またはdocker-compose run --rm
を使用
ほぼ3年後なので、この質問に対する更新された回答を提供したいと思います。これにより、他の人が検索する手間が省けます。
私は同じ質問をしました、そしてここに私が見つけた回避策があります(質問自体からのものを含む):
docker-compose down
これは次のことを行います。
コンテナーを停止し、upによって作成されたコンテナー、ネットワーク、ボリューム、およびイメージを削除します。
デフォルトでは、削除されるのは次のものだけです。
- Containers for services defined in the Compose file - Networks defined in the networks section of the Compose file - The default network, if one is used
外部として定義されたネットワークとボリュームは決して削除されません。
docker-compose.yml
で宣言することはできませんが、面倒なことはありません。特にボリュームとネットワークで。
docker-compose run --rm
--rm-実行後にコンテナを削除します。デタッチモードでは無視されます。
サービスに対して1回限りのコマンドを実行します。たとえば、次のコマンドはWebサービスを開始し、コマンドとしてbashを実行します。
docker-compose run web bash
[...] runによって渡されたコマンドは、service構成で定義されたコマンドを上書きします。
[...]コマンドは、サービス構成で指定されたポートを作成しません。これにより、すでに開いているポートとのポートの衝突が防止されます。 サービスのポートを作成し、ホストにマッピングする場合は、-service-portsを指定しますフラグ
docker-compose rm -f
-f、--force削除の確認を求めません
これはDockerfile
またはdocker-compose.yml
仕様の一部ではなく、runコマンドのcliオプションにすぎないため、答えは「いいえ」です。強制するには、外部の何かに依存する必要があります。
プロジェクトのビルドツールを入手した場合は、通常、docker-composeタスクをそれでラップするのが最善です。たとえば、私たちのgradleプロジェクトは、実行タスクに--rm
のようないくつかのデフォルトオプションを設定するDocker関連タスクを提供します。