🚀

docker-compose.override.yml で 打ち消し定義 ができるようになった。

2023/08/19に公開

以下の様に、 docker-compose.override.yaml で、 !reset を指定することにより、設定が無かった事にできます。

docker-compose.yaml

  php:
    build: ./docker/php

docker-compose.override.yaml

  php:
    build: !reset
    image: ghcr.io/example/hoge/php:latest

詳しくは、以下のPRを見て下さい\(^o^)/

https://github.com/compose-spec/compose-go/pull/380

私の要件では、

  • github Actions で コンテナを 使うときは、 素早く起動するよう、コンテナイメージから、取得したい。
  • 開発環境では、 気軽に、コンテナ設定を 変更したい。

のような感じなので、

githubActions で動くときは、 docker-compose.yml に 対して、
docker-compose.override.yml で buildを !reset で打ち消しを行い、image から コンテナを取得します。

  • 今まで、これをやるには、 yamlファイルの 置換や、 .env でゴニョゴニョやる必要がありましたが、打ち消しできるようになって、設定定義をシンプルに保つことができるようになりました。

利用可能バージョン

docker compose に該当の 機能が取り込まれたのは、compose バージョン v2.18.0 からのようで、github Actions の ubuntu-latest では、利用で 利用できました。

githubActions でのバージョン

runner@fv-azxxxx-xxx:~/work/exmample$ docker compose version
Docker Compose version 2.20.2+azure-1

Discussion