version: '2' volumes: #most volumes mappings require optimization (now all volumes map all containers) etcjobservice: #external: true driver: ${volumedriver} etcnginx: #external: true driver: ${volumedriver} etcregistry: #external: true driver: ${volumedriver} etcui: #external: true driver: ${volumedriver} configjobservice: #external: true driver: ${volumedriver} configdb: #external: true driver: ${volumedriver} configui: #external: true driver: ${volumedriver} data: #according to the eng team this is not even needed (but leaving it in for consistency) #external: true driver: ${volumedriver} data-registry: #external: true driver: ${volumedriver} data-database: #external: true driver: ${volumedriver} data-job_logs: #external: true driver: ${volumedriver} services: harbor-setupwrapper: image: mreferre/harbor-setupwrapper:0.5.0 container_name: harbor-setupwrapper environment: - HARBORHOSTNAME=${harborhostname}.${traefikdomain} - HARBOR_ADMIN_PASSWORD=${harbor_admin_password} volumes: - etcui:/etc/ui - etcjobservice:/etc/jobservice - etcregistry:/etc/registry - etcnginx:/etc/nginx - configdb:/configdb - configui:/configui - configjobservice:/configjobservice command: ["/harbor/harbor-setupwrapper.sh"] network_mode: "none" labels: io.rancher.container.hostname_override: container_name io.rancher.container.start_once: 'true' log: image: vmware/harbor-log:0.5.0 container_name: harbor-log restart: always volumes: - /var/log/harbor/:/var/log/docker/ ports: - 1514:514 labels: io.rancher.scheduler.global: 'true' io.rancher.scheduler.affinity:host_label: harbor-log=true io.rancher.scheduler.affinity:container_label_soft_ne: io.rancher.stack_service.name=$${stack_name}/$${service_name} io.rancher.container.hostname_override: container_name registry: image: library/registry:2.5.0 container_name: registry restart: always volumes: - data-registry:/storage - etcui:/etc/ui - etcjobservice:/etc/jobservice - etcregistry:/etc/registry - etcnginx:/etc/nginx - configdb:/configdb - configui:/configui - configjobservice:/configjobservice environment: - GODEBUG=netdns=cgo command: ["serve", "/etc/registry/config.yml"] depends_on: - log - harbor-setupwrapper logging: driver: "syslog" options: syslog-address: "tcp://127.0.0.1:1514" tag: "registry" labels: io.rancher.container.hostname_override: container_name mysql: image: vmware/harbor-db:0.5.0 container_name: harbor-db restart: always volumes: - data-database:/var/lib/mysql - etcui:/etc/ui - etcjobservice:/etc/jobservice - etcregistry:/etc/registry - etcnginx:/etc/nginx - configdb:/configdb - configui:/configui - configjobservice:/configjobservice depends_on: - log - harbor-setupwrapper logging: driver: "syslog" options: syslog-address: "tcp://127.0.0.1:1514" tag: "mysql" entrypoint: - /bin/sh - -c command: - /configdb/entrypointdb.sh labels: io.rancher.container.hostname_override: container_name ui: image: vmware/harbor-ui:0.5.0 container_name: harbor-ui restart: always volumes: - data:/harbor_storage #according to the eng team this is not even needed (but leaving it in for consistency) - etcui:/etc/ui - etcjobservice:/etc/jobservice - etcregistry:/etc/registry - etcnginx:/etc/nginx - configdb:/configdb - configui:/configui - configjobservice:/configjobservice depends_on: - log - harbor-setupwrapper logging: driver: "syslog" options: syslog-address: "tcp://127.0.0.1:1514" tag: "ui" entrypoint: - /bin/sh - -c command: - /configui/entrypointui.sh labels: io.rancher.container.hostname_override: container_name jobservice: image: vmware/harbor-jobservice:0.5.0 container_name: harbor-jobservice restart: always volumes: - data-job_logs:/var/log/jobs - etcui:/etc/ui - etcjobservice:/etc/jobservice - etcregistry:/etc/registry - etcnginx:/etc/nginx - configdb:/configdb - configui:/configui - configjobservice:/configjobservice depends_on: - log - harbor-setupwrapper logging: driver: "syslog" options: syslog-address: "tcp://127.0.0.1:1514" tag: "jobservice" entrypoint: - /bin/sh - -c command: - /configjobservice/entrypointjobservice.sh labels: io.rancher.container.hostname_override: container_name proxy: image: nginx:1.11.5 container_name: nginx restart: always volumes: - etcui:/etc/ui - etcjobservice:/etc/jobservice - etcregistry:/etc/registry - etcnginx:/etc/nginx - configdb:/configdb - configui:/configui - configjobservice:/configjobservice depends_on: - log - harbor-setupwrapper external_links: #these entries seem to be required for the proxy service to start correctly - registry - ui - mysql - jobservice logging: driver: "syslog" options: syslog-address: "tcp://127.0.0.1:1514" tag: "proxy" labels: io.rancher.container.hostname_override: container_name traefik.alias: ${harborhostname} traefik.port: 80 traefik.domain: ${traefikdomain} traefik.enable: stack