🌟
stringArray ってなんなん?
問題
docker compose の help でチラチラ見えるやつ。
stringArray ってなんなん?
> docker compose --help
Usage: docker compose [OPTIONS] COMMAND
Define and run multi-container applications with Docker.
Options:
--ansi string Control when to print ANSI control characters ("never"|"always"|"auto")
(default "auto")
--compatibility Run compose in backward compatibility mode
--dry-run Execute command in dry run mode
--env-file stringArray Specify an alternate environment file.
-f, --file stringArray Compose configuration files
--parallel int Control max parallelism, -1 for unlimited (default -1)
--profile stringArray Specify a profile to enable
--project-directory string Specify an alternate working directory
(default: the path of the, first specified, Compose file)
-p, --project-name string Project name
なんとなく「複数適用が可能」っぽい雰囲気は掴めるけど、どうやって繰り返す?
結論
下記のissueで言及されている。
オプションを複数使う書き方が正しいとのこと。
docker compose --env-file .env.common --env-file .env.dev config
上記の場合は、envファイルを複数指定。複数ファイルから環境変数を適用できる。
ちなみに、後に指定したものほど優先される(変数が上書きされるイメージ)
ということは、--file オプションも使えるみたいなので、
docker-compose.ymlを分割して同時にupとか出来そうですね。
参考(NGパターン)
そのほか、下記の書き方も予想出来るけど、いずれもNG
▼ 直結
docker compose --env-file .env.common .env.dev config
▼ カンマセパレート
docker compose --env-file .env.common,.env.dev config
後記
stringArrayで検索してもイマイチ「コレ」という記事が無かったので書きました。
環境
> docker compose version
Docker Compose version v2.18.1
> docker version
Client: Docker Engine - Community
Version: 24.0.1
API version: 1.43
Go version: go1.20.4
Git commit: 6802122
Built: Fri May 19 18:06:21 2023
OS/Arch: linux/amd64
Context: default
Server: Docker Engine - Community
Engine:
Version: 24.0.1
API version: 1.43 (minimum version 1.12)
Go version: go1.20.4
Git commit: 463850e
Built: Fri May 19 18:06:21 2023
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.21
GitCommit: 3dce8eb055cbb6872793272b4f20ed16117344f8
runc:
Version: 1.1.7
GitCommit: v1.1.7-0-g860f061
docker-init:
Version: 0.19.0
GitCommit: de40ad0
Discussion