version: '2' services: registry: image: docker.io/bitnami/harbor-registry:2 environment: - REGISTRY_HTTP_SECRET=CHANGEME volumes: - registry_data:/storage - ./config/registry/:/etc/registry/:ro registryctl: image: docker.io/bitnami/harbor-registryctl:2 environment: - CORE_SECRET=CHANGEME - JOBSERVICE_SECRET=CHANGEME - REGISTRY_HTTP_SECRET=CHANGEME volumes: - registry_data:/storage - ./config/registry/:/etc/registry/:ro - ./config/registryctl/config.yml:/etc/registryctl/config.yml:ro postgresql: image: docker.io/bitnami/postgresql:13 container_name: harbor-db environment: - POSTGRESQL_PASSWORD=bitnami - POSTGRESQL_DATABASE=registry volumes: - postgresql_data:/bitnami/postgresql core: image: docker.io/bitnami/harbor-core:2 container_name: harbor-core depends_on: - registry - chartmuseum environment: - CORE_KEY=change-this-key - _REDIS_URL=redis:6379,100, - SYNC_REGISTRY=false - CHART_CACHE_DRIVER=redis - _REDIS_URL_REG=redis://redis:6379/1 - PORT=8080 - LOG_LEVEL=info - EXT_ENDPOINT=http://127.0.0.1 - DATABASE_TYPE=postgresql - REGISTRY_CONTROLLER_URL=http://registryctl:8080 - POSTGRESQL_HOST=postgresql - POSTGRESQL_PORT=5432 - POSTGRESQL_DATABASE=registry - POSTGRESQL_USERNAME=postgres - POSTGRESQL_PASSWORD=bitnami - POSTGRESQL_SSLMODE=disable - REGISTRY_URL=http://registry:5000 - TOKEN_SERVICE_URL=http://core:8080/service/token - HARBOR_ADMIN_PASSWORD=bitnami - CORE_SECRET=CHANGEME - JOBSERVICE_SECRET=CHANGEME - ADMIRAL_URL= - WITH_NOTARY=False - WITH_CHARTMUSEUM=True - CHART_REPOSITORY_URL=http://chartmuseum:8080 - CORE_URL=http://core:8080 - JOBSERVICE_URL=http://jobservice:8080 - REGISTRY_STORAGE_PROVIDER_NAME=filesystem - REGISTRY_CREDENTIAL_USERNAME=harbor_registry_user - REGISTRY_CREDENTIAL_PASSWORD=harbor_registry_password - READ_ONLY=false - RELOAD_KEY= volumes: - core_data:/data - ./config/core/app.conf:/etc/core/app.conf:ro - ./config/core/private_key.pem:/etc/core/private_key.pem:ro portal: image: docker.io/bitnami/harbor-portal:2 container_name: harbor-portal depends_on: - core jobservice: image: docker.io/bitnami/harbor-jobservice:2 container_name: harbor-jobservice depends_on: - redis - core environment: - CORE_SECRET=CHANGEME - JOBSERVICE_SECRET=CHANGEME - CORE_URL=http://core:8080 - REGISTRY_CONTROLLER_URL=http://registryctl:8080 - REGISTRY_CREDENTIAL_USERNAME=harbor_registry_user - REGISTRY_CREDENTIAL_PASSWORD=harbor_registry_password volumes: - jobservice_data:/var/log/jobs - ./config/jobservice/config.yml:/etc/jobservice/config.yml:ro redis: image: docker.io/bitnami/redis:6.0 environment: # ALLOW_EMPTY_PASSWORD is recommended only for development. - ALLOW_EMPTY_PASSWORD=yes harbor-nginx: image: docker.io/bitnami/nginx:1.21 container_name: nginx volumes: - ./config/proxy/nginx.conf:/opt/bitnami/nginx/conf/nginx.conf:ro ports: - '80:8080' depends_on: - postgresql - registry - core - portal chartmuseum: container_name: chartmuseum image: docker.io/bitnami/chartmuseum:0 environment: - CACHE=redis - CACHE_REDIS_ADDR=redis:6379 - CACHE_REDIS_DB=1 - DEPTH=1 - PORT=8080 - STORAGE=local - STORAGE_LOCAL_ROOTDIR=/bitnami/data - ALLOW_OVERWRITE=true - INDEX_LIMIT=0 volumes: - chartmuseum_data:/bitnami/data volumes: registry_data: driver: local core_data: driver: local jobservice_data: driver: local postgresql_data: driver: local chartmuseum_data: driver: local