Я пытаюсь настроить набор контейнерных приложений, работающих на одном сервере Ubuntu. Я хочу, чтобы каждый работал на своем собственном поддомене и использовал Traefik для прокси-запросов к каждому контейнеру на основе домена. Мой SSL-сертификат является групповым сертификатом, охватывающим домен и все поддомены Моя проблема в том, что я не смог увидеть приложения, когда перешел к тому, что, по моему мнению, должно быть правильным поддоменом.
Вот конфигурация toml для основного контейнера Traefik (извлекается из док-концентратора, кстати):
defaultEntryPoints = ["http", "https"]
[entryPoints]
[entryPoints.http]
address = ":80"
[entryPoints.http.redirect]
entryPoint = "https"
[entryPoints.https]
address = ":443"
[entryPoints.https.tls]
[acme]
email = "myemail@gmail.com"
storage = "/acme.json"
entryPoint = "https"
OnHostRule = false
[[acme.domains]]
main = "*.mydomain.com"
sans = ["mydomain.com"]
[acme.dnsChallenge]
provider = "digitalocean"
delayBeforeCheck = 0
[docker]
endpoint = "unix:///var/run/docker.sock"
domain = "mydomain.com"
watch = true
exposedbydefault = false
И docker-compose.yml для контейнера Traefik:
version: '3'
services:
traefik:
image: traefik:v1.7.9
#command: --docker
ports:
- "80:80"
- "443:443"
restart: always
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
- "./traefik.toml:/traefik.toml"
- "./acme.json:/acme.json"
environment:
- DO_AUTH_TOKEN
networks:
- default
Вот пример одного из файлов docker-compose.yml и Dockerfile для одного из приложений, которые я пытаюсь запустить с субдомена:
докер-compose.yml
version: '3'
services:
servicename:
build: .
labels:
- "traefik.enabled=true"
- "traefik.backend=servicename"
- "traefik.frontend.rule=Host:servicename.domain.com"
- "traefik.docker.network=traefik_default"
- "traefik.port=8001"
restart: always
networks:
- traefik_default
networks:
traefik_default:
external:
name: traefik_default
Dockerfile
# pull official base image
FROM ruby:2.0.0
# Copy project
COPY . .
# install dependencies
RUN bundle install
EXPOSE 8001/tcp
CMD ["bundle", "exec", "rackup", "--host", "0.0.0.0", "-p", "8001"]
Контейнерное приложение отлично работает без Traefik, но я пока не смог его подключить. Кто-нибудь знает, что может быть не так?