Так что я свободно следую Сообщение в блоге Роберта Дженсена создать Портовый реестр для моей домашней лаборатории.
Я размещаю несколько сервисов на одном компьютере, поэтому у меня прекрасно работает traefik в качестве обратного прокси-сервера для всех моих веб-контейнеров Docker.
Мой traefik docker-compose выглядит так:
версия: '3.7'
Сервисы:
трафик:
изображение: traefik: последний
имя_контейнера: трафик
перезапуск: если не остановлен
порты:
- 0.0.0.0:80:80
- 0.0.0.0:443:443
сети:
- прокси
тома:
- ./acme.json:/acme.json
- /var/run/docker.sock:/var/run/docker.sock
команда:
- --api.dashboard=false
--entryPoints.http.address=:80
--entrypoints.http.http.redirections.entrypoint.to=https
--entryPoints.https.address=:443
--entrypoints.https.http.tls.certresolver=letsencrypt
- [email protected]
- --certificatesresolvers.letsencrypt.acme.storage=acme.json
--certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=http
--providers.docker=истина
--providers.docker.network=прокси
--providers.docker.exposedbydefault=false
--providers.docker.watch=true
сети:
прокси:
внешний: правда
Затем мой гавань.yml:
имя хоста:Registry.example.net
http:
порт: 1080
относительные URL: правда
external_url: https://registry.example.net:433
гавань_admin_пароль: Harbour12345
база данных:
пароль: root123
max_idle_conns: 100
max_open_conns: 900
data_volume: /srv/гавань/данные
мелочи:
ignore_unfixed: ложь
skip_update: ложь
небезопасно: ложь
служба занятости:
max_job_workers: 10
уведомление:
webhook_job_max_retry: 10
диаграмма:
absolute_url: отключен
журнал:
уровень: информация
местный:
повернуть_счетчик: 50
rotate_size: 200M
местоположение: /srv/гавань/журнал
_версия: 2.4.0
прокси:
http_прокси:
https_прокси:
нет_прокси:
составные части:
- основной
- служба занятости
- мелочь
И docker-compose.override.yml для порта (для настройки traefik):
версия: '2.3'
Сервисы:
прокси:
сети:
- прокси
этикетки:
- traefik.enable=true
- "traefik.http.routers.harbor.rule=Host(`registry.example.net`)"
- traefik.http.routers.harbor.service=гавань
- traefik.http.services.harbor.loadbalancer.server.url="http://registry.kapdee.net:8080"
сети:
гавань:
внешний: ложный
прокси:
внешний: правда
Я также удалил все строки, такие как proxy_set_header X-Forwarded-Proto $x_forwarded_proto;
от /srv/гавань/common/config/nginx/nginx.conf
как предложил Роберт.
Итак, все веб-интерфейсы и т. д. работают отлично.
Я также запускал описанные команды здесь для тестирования интерфейса v2. Вторая команда предоставляет URL-адрес https.
Проблема, с которой я сталкиваюсь, заключается в том, что когда я пытаюсь вход в докер https://registry.example.net -u admin -p Harbour12345
, я получаю следующую ошибку:
Ответ об ошибке от демона: Получить «https://registry.example.net/v2/»: Получить «https://registry.example.net:433/service/token?account=admin&client_id=docker&offline_token=true&service=harbor-registry» ": net/http: запрос отменен во время ожидания подключения (клиент. время ожидания превышено при ожидании заголовков)
Я не могу на всю жизнь понять, как заставить это работать сейчас, а также шаги по устранению неполадок, чтобы добраться туда.
Помощь приветствуется.
(Также нам нужен тэг traefik и harbour)