Предоставить сервис базы данных с фиксированным портом в Traefik - PullRequest
0 голосов
/ 15 февраля 2019

В рое Docker мы развернули три стека, каждый из которых запускает службу базы данных на контейнерном порту 3306.

mariadb:
  image: my_mariadb_image
  environment:
    - MYSQL_ALLOW_EMPTY_PASSWORD=false
    - MYSQL_DATABASE=db_schema
    - MYSQL_USER=db_user
    - MYSQL_PASSWORD=db_pass
  ports:
    - 3306
  volumes:
    - mariadb:/var/lib/mysql
  networks:
    - cluster-global-net
    - default
  restart: on-failure
  deploy:
    labels:
      traefik.docker.network: cluster-global-net
      traefik.port: 3306

Traefik выбирает эти службы и предоставляет правило маршрута внешнего интерфейса:
stackName-mariadb.domain.com

Я могу подключиться к базе данных стека, используя этот маршрут, но мне нужно использовать порт (в данном случае 30004), который, кажется, назначается динамически «где-то» и сопоставляется с портом внутренней базы данных 3306.

Как я могу сказать Traefik использовать фиксированный порт, например, 3306, чтобы я мог использовать его в качестве строки подключения?

stackName-mariadb.domain.com:3306

...