Așa că vă urmăresc vag Postarea pe blog a lui Robert Jensen a crea o Registrul portului pentru laboratorul meu de acasă.
Găzduiesc mai multe servicii pe o singură mașină și așadar am traefik care rulează frumos ca proxy invers pentru toate containerele mele docker bazate pe web.
Traefik-ul meu docker-compose arată astfel:
versiunea: „3.7”
Servicii:
traefik:
imagine: traefik:latest
container_name: traefik
reporniți: dacă nu este oprit
porturi:
- 0.0.0.0:80:80
- 0.0.0.0:443:443
retele:
- proxy
volume:
- ./acme.json:/acme.json
- /var/run/docker.sock:/var/run/docker.sock
comanda:
- --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=true
- --providers.docker.network=proxy
- --providers.docker.exposedbydefault=fals
- --providers.docker.watch=true
retele:
proxy:
extern: adevărat
Atunci port-ul meu.yml:
numele gazdă: registry.example.net
http:
port: 1080
relativeurls: adevărat
external_url: https://registry.example.net:433
parola_admin_harbor: Harbor12345
Bază de date:
parola: root123
max_idle_conns: 100
max_open_conns: 900
volum_date: /srv/harbor/data
banal:
ignore_unfixed: false
skip_update: fals
nesigur: fals
serviciul de locuri de munca:
max_job_lucrători: 10
notificare:
webhook_job_max_retry: 10
diagramă:
absolute_url: dezactivat
Buturuga:
nivel: info
local:
rotație_număr: 50
Dimensiune_rotire: 200M
locație: /srv/harbour/log
_versiunea: 2.4.0
proxy:
Http proxy:
https_proxy:
no_proxy:
componente:
- miez
- serviciul de locuri de muncă
- banal
Și un docker-compose.override.yml pentru harbour (pentru a configura traefik):
versiunea: „2.3”
Servicii:
proxy:
retele:
- proxy
etichete:
- traefik.enable=true
- "traefik.http.routers.harbor.rule=Gazda(`registry.example.net`)"
- traefik.http.routers.harbor.service=harbour
- traefik.http.services.harbor.loadbalancer.server.url="http://registry.kapdee.net:8080"
retele:
port:
extern: fals
proxy:
extern: adevărat
De asemenea, am eliminat toate rândurile de genul proxy_set_header X-Forwarded-Proto $x_forwarded_proto;
din /srv/harbor/common/config/nginx/nginx.conf
după cum sugerează Robert.
Deci, toate interfețele web etc funcționează perfect.
Am rulat și comenzile descrise Aici pentru a testa interfața v2. A doua comandă oferă o adresă URL care este https.
Problema cu care mă confrunt este că atunci când încerc docker login https://registry.example.net -u admin -p Harbor12345
, primesc următoarea eroare:
Răspuns de eroare de la demon: Obțineți „https://registry.example.net/v2/”: Obțineți „https://registry.example.net:433/service/token?account=admin&client_id=docker&offline_token=true&service=harbor-registry ": net/http: cererea anulată în așteptarea conexiunii (Client.Timeout a depășit în timpul așteptării anteturilor)
Nu pot să-mi dau seama pentru toată viața cum să fac acest lucru să funcționeze acum și nici pașii de depanare pentru a ajunge acolo.
Ajutorul este foarte apreciat.
(Avem nevoie și de o etichetă de traefik și port)