docker-compose の V2 にはextends
ってのがありまして、これを使って別のサービスの設定を継承する事が出来たんですが、V3
になってからは無くなってしまったようです。。
---
# docker-compose.common.yml
version: '2'
services:
base:
image: php:7.2-apache
volumes:
- ./index.php:/var/www/html/index.php
environment:
TITLE: ドッカーコンポーズ
# docker-compose.yml
---
version: '2'
services:
front:
extends:
file: ./docker-compose.common.yml
service: base
container_name: front
ports:
- 8000:80
environment:
MESSAGE: フロントだよ
admin:
extends:
file: ./docker-compose.common.yml
service: base
container_name: admin
ports:
- 8001:80
environment:
MESSAGE: アドミンだよ
上記を version: '3'
にすると以下のエラーが出ます。
ERROR: The Compose file './docker-compose.yml' is invalid because:
Unsupported config option for services.admin: 'extends'
Unsupported config option for services.front: 'extends'
なので、yamlの アンカーとエイリアス を使ってあげると、それっぽい事が出来るようになりますよ。
---
version: '3'
services:
front: &front # アンカー
image: php:7.2-apache
container_name: front
volumes:
- ./index.php:/var/www/html/index.php
ports:
- 8000:80
environment:
TITLE: ドッカーコンポーズ
MESSAGE: フロントだよ
admin:
<<: *front # エイリアス
container_name: admin
ports:
- 8001:80
environment:
TITLE: ドッカーコンポーズ
MESSAGE: アドミンだよ