🌟

stringArray ってなんなん?

2023/05/26に公開

問題

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で言及されている。

https://github.com/docker/compose/issues/8773

オプションを複数使う書き方が正しいとのこと。

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