はじめに
最近、netbox-docker の README.md を見て知ったのですが、docker-compose.yml の内容を上書きする docker-compose.override.yml というファイルがあるそうです。
docker-compose.yml はそのままのこしておき、docker-compose.override.yml でカスタマイズするのに便利そうです。
公式ドキュメントにも記載がありました。
netbox-docker の README.md の例で試してみます。
docker-compose.yml 単品の場合
nginx を抜粋すると以下の通りです。
# nginx nginx: command: nginx -c /etc/netbox-nginx/nginx.conf image: nginx:1.19-alpine depends_on: - netbox ports: - 8080 volumes: - netbox-static-files:/opt/netbox/netbox/static:ro - netbox-nginx-config:/etc/netbox-nginx/:ro
これを docker-compose up -d で起動したあと、確認します。
$ docker-compose ps
Name Command State Ports
--------------------------------------------------------------------------------------------------------
netbox-docker_netbox-worker_1 python3 /opt/netbox/netbox ... Up
netbox-docker_netbox_1 /opt/netbox/docker-entrypo ... Up
netbox-docker_nginx_1 /docker-entrypoint.sh ngin ... Up 80/tcp, 0.0.0.0:49153->8080/tcp
netbox-docker_postgres_1 docker-entrypoint.sh postgres Up 5432/tcp
netbox-docker_redis-cache_1 docker-entrypoint.sh sh -c ... Up 6379/tcp
netbox-docker_redis_1 docker-entrypoint.sh sh -c ... Up 6379/tcp
抜粋すると、以下の通り、49153 が開放されました。
netbox-docker_nginx_1 /docker-entrypoint.sh ngin ... Up 80/tcp, 0.0.0.0:49153->8080/tcp
ただ、先程の docker-compose.yml ですと、docker-compose up のたびにポートが変わってしまい、たとえば、
netbox-docker_nginx_1 /docker-entrypoint.sh ngin ... Up 80/tcp, 0.0.0.0:49154->8080/tcp
となってしまい不便です。
docker-compose.override.yml で上書きする
そこで docker-compose.override.yml で上書きして起動する方法を試します。
まず、以下の内容の docker-compose.override.yml を用意します。
version: '3.4'
services:
nginx:
ports:
- 8000:8080
EOF
この状態で docker-compose up -d で起動したあと、確認します。
$ docker-compose ps
Name Command State Ports
-------------------------------------------------------------------------------------------------------------------------------
netbox-docker_netbox-worker_1 python3 /opt/netbox/netbox ... Up
netbox-docker_netbox_1 /opt/netbox/docker-entrypo ... Up
netbox-docker_nginx_1 /docker-entrypoint.sh ngin ... Up 80/tcp, 0.0.0.0:8000->8080/tcp,0.0.0.0:49153->8080/tcp
netbox-docker_postgres_1 docker-entrypoint.sh postgres Up 5432/tcp
netbox-docker_redis-cache_1 docker-entrypoint.sh sh -c ... Up 6379/tcp
netbox-docker_redis_1 docker-entrypoint.sh sh -c ... Up 6379/tcp
今度は 8000 も開放されました。「も」なのでマージ的な動作なのでしょうか。