104 lines
2.5 KiB
YAML
104 lines
2.5 KiB
YAML
version: '3.8'
|
|
|
|
services:
|
|
# 1. Harbor 映像服務器 - 提供容器映像管理功能
|
|
harbor:
|
|
image: goharbor/harbor-core:v2.9.3
|
|
container_name: harbor-core
|
|
restart: always
|
|
ports:
|
|
- "5700:8080"
|
|
environment:
|
|
CORE_URL: http://harbor:8080
|
|
DATABASE_TYPE: postgresql
|
|
POSTGRES_HOST: harbor-db
|
|
POSTGRES_PORT: 5432
|
|
POSTGRES_USERNAME: ${POSTGRES_USERNAME}
|
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
|
POSTGRES_DB: registry
|
|
REGISTRY_URL: http://harbor-registry:5000
|
|
REGISTRY_CONTROLLER_URL: http://harbor-registry:5000
|
|
LOG_LEVEL: info
|
|
PERMITTED_REGISTRY_TYPES: docker-registry
|
|
QUOTA_PER_PROJECT_ENABLED: "true"
|
|
READ_ONLY: "false"
|
|
volumes:
|
|
- harbor_core_data:/data
|
|
networks:
|
|
- harbor-network
|
|
- webproxy
|
|
depends_on:
|
|
- harbor-db
|
|
- harbor-registry
|
|
|
|
# 2. Harbor 資料庫 - 儲存 Harbor 的元數據
|
|
harbor-db:
|
|
image: postgres:14
|
|
container_name: harbor-db
|
|
restart: always
|
|
environment:
|
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
|
POSTGRES_DB: registry
|
|
volumes:
|
|
- harbor_db_data:/var/lib/postgresql/data
|
|
networks:
|
|
- harbor-network
|
|
|
|
# 3. Harbor Registry - 儲存容器映像的註冊表
|
|
harbor-registry:
|
|
image: registry:2
|
|
container_name: harbor-registry
|
|
restart: always
|
|
ports:
|
|
- "5600:5000"
|
|
environment:
|
|
REGISTRY_HTTP_ADDR: 0.0.0.0:5000
|
|
REGISTRY_HTTP_RELATIVEURLS: 'true'
|
|
REGISTRY_STORAGE_DELETE_ENABLED: 'true'
|
|
volumes:
|
|
- /mnt/data/External/harbor/registry:/var/lib/registry
|
|
networks:
|
|
- harbor-network
|
|
|
|
# 4. BuildKit 編譯服務 - 用於高效構建容器映像
|
|
buildkitd:
|
|
image: moby/buildkit:latest
|
|
container_name: buildkitd
|
|
restart: always
|
|
privileged: true
|
|
ports:
|
|
- "5500:1234"
|
|
environment:
|
|
BUILDKIT_HOST: tcp://0.0.0.0:1234
|
|
volumes:
|
|
- buildkit_data:/var/lib/buildkit
|
|
networks:
|
|
- harbor-network
|
|
|
|
# 5. BuildKit Web UI - 提供 BuildKit 的 Web 界面
|
|
buildkit-ui:
|
|
image: tonistiiii/buildkit-ui:latest
|
|
container_name: buildkit-ui
|
|
restart: always
|
|
ports:
|
|
- "5400:8080"
|
|
environment:
|
|
BUILDKIT_HOST: tcp://buildkitd:1234
|
|
networks:
|
|
- harbor-network
|
|
- webproxy
|
|
depends_on:
|
|
- buildkitd
|
|
|
|
volumes:
|
|
harbor_core_data:
|
|
harbor_db_data:
|
|
buildkit_data:
|
|
buildkit_cache:
|
|
|
|
networks:
|
|
harbor-network:
|
|
driver: bridge
|
|
webproxy:
|
|
external: true
|