Итак, я пытаюсь следовать этому примеру здесь (https://blog.tylerbuchea.com/docker-swarm-traefik-lets-encrypt-ssl-certificates/). По сути, это рой Docker, который имеет файл-контейнер traefik.toml
и traefik.yaml
. получите ssl, так как у меня уже есть рой.
Вот проблема. В приведенном выше примере есть только один контейнер, который сразу же использует command
для ускорения приложения узла. Я бы предпочел сделать что-то вроде следующего.
Вот мой файл docker-compose:
version: "3.3"
networks:
default:
external: false
proxy:
external: true
services:
back:
image: patientplatypus/lowtechback:latest
ports:
- '5000:5000'
networks:
- proxy
- default
deploy:
replicas: 3
restart_policy:
condition: on-failure
max_attempts: 5
window: 120s
labels:
- "traefik.docker.backend=back"
- "traefik.port=5000"
- "traefik.frontend.rule=Host:lowteck.com"
- "traefik.docker.network=proxy"
front:
image: patientplatypus/lowtechfront:latest
ports:
- '3000:3000'
networks:
- proxy
- default
depends_on:
- back
deploy:
replicas: 3
restart_policy:
condition: on-failure
max_attempts: 5
window: 120s
labels:
- "traefik.docker.backend=front"
- "traefik.port=3000"
- "traefik.frontend.rule=Host:lowteck.com"
- "traefik.docker.network=proxy"
Обратите внимание, что внешний интерфейс ищет входящие данные из traefik.port=3000
, а затем перенаправит их на 3000 в развернутом изображении, используя ports: 3000:3000
.
Теперь вот мой traefik.yaml
файл:
version: '3.3'
networks:
proxy:
external: true
configs:
traefik.toml:
file: ./traefik.toml
services:
traefik:
image: traefik
ports:
- "80:3000"
- "8080:8080"
- "443:443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
configs:
- source: traefik.toml
target: /etc/traefik/traefik.toml
labels:
- "traefik.enable=false"
networks:
- proxy
deploy:
replicas: 1
placement:
constraints: [node.role == manager]
Итак, это берет данные, поступающие из порта 80, и перенаправляет их в порт 3000, верно? Так что я ожидаю, что когда кто-то переходит на lowteck.com, он должен прыгать 80-traefik-3000->3000-docker compose-3000->3000-myImage
. Вместо этого я получаю unable to connect
. Я протестировал lowteck.com:3000
, и он работает, так что я делаю не так?