diff --git a/lxc1/p2-apps/harbor.yml b/lxc1/p2-apps/harbor.yml new file mode 100644 index 0000000..f9ba96a --- /dev/null +++ b/lxc1/p2-apps/harbor.yml @@ -0,0 +1,93 @@ +services: + harbor-core: + image: bitnami/harbor-core:latest + container_name: harbor-core-node${HARBOR_NODE_ID} + restart: unless-stopped + depends_on: + - harbor-db + - harbor-redis + - harbor-registry + environment: + - HARBOR_ADMIN_PASSWORD=${HARBOR_ADMIN_PASS} + - HARBOR_DATABASE_HOST=harbor-db + - HARBOR_DATABASE_PASSWORD=${HARBOR_DB_PASS} + - HARBOR_REDIS_HOST=harbor-redis + # Internal Docker DNS uses service name (harbor-registry), not container name + - HARBOR_REGISTRY_URL=http://harbor-registry:5000 + - EXT_ENDPOINT=https://${HARBOR_HOST_NAME}.${TRAEFIK_DNS_SUFFIX} + volumes: + - /shared/harbor/data:/data + networks: + - harbor_internal + - harbor_external + labels: + - "traefik.enable=true" + - "traefik.docker.network=harbor_external" + # FIXED TYPO: Changed TREAFIK to TRAEFIK + - "traefik.http.routers.harbor.rule=Host(`${HARBOR_HOST_NAME}.${TRAEFIK_DNS_SUFFIX}`)" + - "traefik.http.routers.harbor.tls=true" + - "traefik.http.routers.harbor.tls.certresolver=dns_resolver" + - "traefik.http.services.harbor.loadbalancer.server.port=8080" + + harbor-registry: + image: bitnami/harbor-registry:latest + container_name: harbor-registry-node${HARBOR_NODE_ID} + restart: unless-stopped + depends_on: + - harbor-redis + environment: + - REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY=/storage + - REGISTRY_REDIS_HOST=harbor-redis + - REGISTRY_HTPASSWD_REALM=Harbor-Registry + volumes: + - /shared/harbor/registry:/storage + - /shared/harbor/config/registry:/etc/registry:ro + networks: + - harbor_internal + + harbor-jobservice: + image: bitnami/harbor-jobservice:latest + container_name: harbor-jobservice-node${HARBOR_NODE_ID} + restart: unless-stopped + depends_on: + - harbor-core + - harbor-redis + - harbor-db + environment: + - HARBOR_DATABASE_HOST=harbor-db + - HARBOR_DATABASE_PASSWORD=${HARBOR_DB_PASS} + - HARBOR_REDIS_HOST=harbor-redis + volumes: + - /shared/harbor/jobservice:/var/log/jobs + networks: + - harbor_internal + + harbor-db: + image: bitnami/postgresql:latest + container_name: harbor-db-node${HARBOR_NODE_ID} + restart: unless-stopped + environment: + - POSTGRESQL_USERNAME=bn_harbor + - POSTGRESQL_PASSWORD=${HARBOR_DB_PASS} + - POSTGRESQL_DATABASE=bitnami_harbor + volumes: + - /shared/harbor/database:/bitnami/postgresql + networks: + - harbor_internal + + harbor-redis: + image: bitnami/redis:latest + container_name: harbor-redis-node${HARBOR_NODE_ID} + restart: unless-stopped + environment: + - ALLOW_EMPTY_PASSWORD=yes + volumes: + - /shared/harbor/redis:/bitnami/redis/data + networks: + - harbor_internal + +networks: + harbor_internal: + driver: bridge + harbor_external: + external: true \ No newline at end of file