Traefik内のサービス名を変更する
Traefikのダッシュボードを見ていて気がつくのは、サービス名に一貫性の無いことだ。まるで「どういう理由でこの名前になったのか」がわからない。
以下はNextCloudの例だが、必ずしもこういうパターンとは限らない。
この理由は全くわからないのだが、サービス名を強制する方法は、How to set Traefik 2.4 service name in docker-compose labelsにあった。
labels:
- traefik.http.services.<<name_of_service>>.loadbalancer.server.port=80
を入れろというのだ。
たしかに、以下のようにloadbalancerを入れてやると、サービス名がその名前に変更される(この場合は、指定する必要の無い80を明示的に指定している)。
version: '3'
services:
nextcloud:
image: nextcloud:24.0.5
container_name: nextcloud
volumes:
- ./data:/var/www/html
environment:
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=***
- MYSQL_PASSWORD=***
- MYSQL_HOST=mariadb
- PHP_UPLOAD_MAX_FILESIZE=1024M
- PHP_POST_MAX_SIZE=1024M
- PHP_UPLOAD_LIMIT=16G
# port 3000
restart: always
labels:
- "traefik.enable=true"
- "traefik.http.routers.nextcloud.rule=Host(`nc.****.com`)"
- "traefik.http.services.nextcloud.loadbalancer.server.port=80" # これ
- "traefik.http.routers.nextcloud.entrypoints=websecure"
- "traefik.http.routers.nextcloud.tls.certresolver=myresolver"
- "traefik.http.routers.nextcloud-http.entrypoints=web"
- "traefik.http.routers.nextcloud-http.rule=Host(`nc.****.com`)"
- "traefik.http.routers.nextcloud-http.middlewares=nextcloud-https"
- "traefik.http.middlewares.nextcloud-https.redirectscheme.scheme=https"
networks:
default:
external:
name: traefik-network
このように変更される。
ディスカッション
コメント一覧
まだ、コメントがありません