# #docker #docker-compose #gitlab #traefik #gitlab-ee
#докер #докер-сочинение #gitlab #траэфик #gitlab-ee
Вопрос:
я запускаю контейнер докера gitlab-ee за контейнером докера traefik v1. Мой gitlab должен работать в домене gitlab.dev.example.com:65443
, порт 65443 перенаправляется на 443 на моем сервере в моем маршрутизаторе (у меня есть другие вещи, работающие на моих 443 и 80 портах). моя панель управления traefik работает на traefik.dev.example.com:65443/dashboard/
Теперь, когда я хочу получить сертификат lets encrypt с помощью traefik, он пытается получить его для домена gitlab.dev.example.com
и терпит неудачу с «Невозможно получить сертификат ACME для доменов». gitlab.dev.example.com» […]»
если я посещу https://gitlab.dev.example.com:65443
его, он откроет мой контейнер gitlab, но с «Сертификатом по умолчанию Traefik». Я не могу нажимать или извлекать из этих репозиториев gitlab, потому что SSL-сертификаты самоподписаны, поэтому я хочу получить сертификат для шифрования.
я поменял фактический домен с «example.com» очевидно,
мой траэфик.томл:
debug = false logLevel = "ERROR" defaultEntryPoints = ["https", "http"] [web] address = ":80" [docker] endpoint = "unix:///var/run/docker.sock" domain = "traefik.dev.example.com" //swapped the url out watch = true exposedByDefault = false # Force HTTPS [entryPoints] [entryPoints.http] address = ":80" [entryPoints.http.redirect] entryPoint = "https" [entryPoints.https] address = ":443" [entryPoints.https.tls] # Enable retry sending a request if the network error [retry] # Let's encrypt configuration [acme] email="e@mail.com" //swapped the email out storage="acme.json" entryPoint="https" acmeLogging=true OnHostRule=true [acme.httpChallenge] entryPoint = "http"
теперь перейдем к моему докеру-составьте файлы. у меня есть отдельный docker-compose.yml для каждого контейнера , мой docker-compose.yml для контейнера traefik:
version: "3.2" services: reverse-proxy: image: traefik:alpine command: --api --docker --logLevel=error restart: unless-stopped container_name: docker-traefik volumes: - /var/run/docker.sock:/var/run/docker.sock - ./traefik.toml:/etc/traefik/traefik.toml - ./acme.json:/acme.json environment: - "TZ=Europe/Berlin" networks: - traefik_proxy - default ports: - "443:443" - "80:80" logging: driver: "json-file" options: max-file: "3" max-size: "5m" labels: - traefik.backend=traefik-proxy - traefik.frontend.rule=Host:traefik.dev.loropserver.de - traefik.docker.network=traefik_proxy - traefik.port=8080 - traefik.enable=true - traefik.frontend.auth.basic=lorop:$apr1$dHnqprRX$DjIWIaE97EnMoxwu6o/14. networks: traefik_proxy: external: name: traefik_proxy # default: # driver: bridge
my docker-compose.yml for the gitlab container:
version: '3.5' services: gitlab: image: 'gitlab/gitlab-ee:latest' container_name: gitlab restart: unless-stopped hostname: 'gitlab.dev.example.com' environment: GITLAB_OMNIBUS_CONFIG: | external_url 'https://gitlab.dev.example.com'; //some more configs ports: - '22:22' - '5005:5005' volumes: - './volumes/gitlab/config:/etc/gitlab' - './volumes/gitlab/logs:/var/log/gitlab' - './volumes/gitlab/data:/var/opt/gitlab' - /etc/localtime:/etc/localtime:ro - './certs:/etc/gitlab/trusted-certs' networks: - traefik_proxy labels: - 'traefik.enable=true' - 'traefik.port=65443' - 'traefik.docker.network=traefik_proxy' - 'traefik.backend=gitlab' - 'traefik.frontend.rule=Host:gitlab.dev.example.com' - 'traefik.http.routers.entrypoints=websecure' networks: traefik_proxy: external: true