前提・実現したいこと
Docker Composeで宣言を使いまわしたいです。
現在同じような宣言をコンテナの数だけ書いています。
その結果冗長になり非常に見づらくなっています。
.env
DNS1=8.8.8.8 DNS2=8.8.4.4 ADMIN_PASSWORD001=password001 ADMIN_PASSWORD002=password002 ADMIN_PASSWORD003=password003
docker-compose.yml
version: '3' services: server001: env_file: - .env build: context: . dockerfile: Dockerfile restart: always dns: - ${DNS1} - ${DNS2} cap_add: - NET_ADMIN container_name: server001 ports: - 1000:1000 environment: ADMIN_PASSWORD: ${ADMIN_PASSWORD001} server002: env_file: - .env build: context: . dockerfile: Dockerfile restart: always dns: - ${DNS1} - ${DNS2} cap_add: - NET_ADMIN container_name: server002 ports: - 1001:1000 environment: ADMIN_PASSWORD: ${ADMIN_PASSWORD002} server003: env_file: - .env build: context: . dockerfile: Dockerfile restart: always dns: - ${DNS1} - ${DNS2} cap_add: - NET_ADMIN container_name: server003 ports: - 1002:1000 environment: ADMIN_PASSWORD: ${ADMIN_PASSWORD003}
例えばcommon: common_data
このように共通データの指定が出来ればシンプルになり可読性やメンテナンス性が上がると考えています。
なにか良い書き方はありませんでしょうか?
docker-compose.yml
version: '3' services: common_data: env_file: - .env build: context: . dockerfile: Dockerfile restart: always dns: - ${DNS1} - ${DNS2} cap_add: - NET_ADMIN server001: common: common_data container_name: server001 ports: - 1000:1000 environment: ADMIN_PASSWORD: ${ADMIN_PASSWORD001} server002: common: common_data container_name: server002 ports: - 1001:1000 environment: ADMIN_PASSWORD: ${ADMIN_PASSWORD002} server003: common: common_data container_name: server003 ports: - 1002:1000 environment: ADMIN_PASSWORD: ${ADMIN_PASSWORD003}
補足情報(FW/ツールのバージョンなど)
- Docker desktop (Windows) 2.3.0.3(45519) stable
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/07 14:02
2020/07/07 14:36
退会済みユーザー
2020/07/07 15:34