2017-06-23 13:48:13 +02:00

211 lines
5.7 KiB
YAML

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