ฉันจึงติดตามอย่างหลวมๆ โพสต์บล็อกของ Robert Jensen เพื่อสร้าง ทะเบียนเจ้าท่า สำหรับห้องปฏิบัติการที่บ้านของฉัน
ฉันโฮสต์บริการหลายรายการในเครื่องเดียว ดังนั้นฉันจึงมี traefik ทำงานอย่างสวยงามเป็นพร็อกซีย้อนกลับสำหรับคอนเทนเนอร์นักเทียบท่าบนเว็บทั้งหมดของฉัน
traefik docker-compose ของฉันมีลักษณะดังนี้:
รุ่น: '3.7'
บริการ:
เทรฟิค:
ภาพ: traefik:ล่าสุด
ชื่อคอนเทนเนอร์: 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=true
- --providers.docker.network=proxy
- --providers.docker.exposedbydefault=false
- --providers.docker.watch=true
เครือข่าย:
พร็อกซี:
ภายนอก: จริง
จากนั้น Harbor.yml ของฉัน:
ชื่อโฮสต์: Registry.example.net
http:
พอร์ต: 1080
URL สัมพัทธ์: จริง
external_url: https://registry.example.net:433
Harbor_admin_password: Harbor12345
ฐานข้อมูล:
รหัสผ่าน: root123
max_idle_conns: 100
max_open_conns: 900
data_volume: /srv/harbour/data
เรื่องไม่สำคัญ:
ละเลย_unfixed: เท็จ
skip_update: เท็จ
ไม่ปลอดภัย: เท็จ
บริการงาน:
max_job_workers: 10
การแจ้งเตือน:
webhook_job_max_retry: 10
แผนภูมิ:
Absolute_url: ปิดใช้งาน
บันทึก:
ระดับ: ข้อมูล
ท้องถิ่น:
หมุน_นับ: 50
หมุน_ขนาด: 200M
ตำแหน่ง: /srv/harbour/log
_เวอร์ชั่น: 2.4.0
พร็อกซี:
http_proxy:
https_proxy:
no_proxy:
ส่วนประกอบ:
- แกน
- บริการงาน
- เรื่องเล็กน้อย
และนักเทียบท่า-compose.override.yml สำหรับท่าเรือ (เพื่อตั้งค่า traefik):
รุ่น: '2.3'
บริการ:
พร็อกซี:
เครือข่าย:
- หนังสือมอบฉันทะ
ป้ายกำกับ:
- traefik.enable=จริง
- "traefik.http.routers.harbor.rule=Host(`registry.example.net`)"
- traefik.http.routers.harbor.service=harbor
- traefik.http.services.harbor.loadbalancer.server.url="http://registry.kapdee.net:8080"
เครือข่าย:
ท่าเรือ:
ภายนอก: เท็จ
พร็อกซี:
ภายนอก: จริง
ฉันยังลบบรรทัดทั้งหมดเช่น proxy_set_header X-ส่งต่อโปรโต $x_forwarded_proto;
จาก /srv/harbor/common/config/nginx/nginx.conf
ตามที่โรเบิร์ตแนะนำ
ดังนั้นเว็บอินเตอร์เฟสทั้งหมด ฯลฯ จึงทำงานได้อย่างสมบูรณ์
ฉันยังได้เรียกใช้คำสั่งที่อธิบายไว้ ที่นี่ เพื่อทดสอบอินเทอร์เฟซ v2 คำสั่งที่สองระบุ url ที่เป็น https
ปัญหาที่ฉันเผชิญคือเมื่อฉันพยายาม เข้าสู่ระบบนักเทียบท่า https://registry.example.net -u admin -p Harbor12345
ฉันได้รับข้อผิดพลาดต่อไปนี้:
การตอบสนองข้อผิดพลาดจากภูต: รับ "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: คำขอถูกยกเลิกขณะรอการเชื่อมต่อ (Client.Timeout เกินขณะรอส่วนหัว)
ฉันไม่สามารถคิดหาวิธีการทำงานนี้มาตลอดชีวิต หรือขั้นตอนการแก้ไขปัญหาเพื่อไปถึงจุดนั้น
ความช่วยเหลือได้รับการชื่นชมอย่างมาก
(เราต้องการแท็ก traefik และท่าเรือด้วย)