The Gatekeeper, or a project gating system
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

162 lines
4.1 KiB

version: '2.1'
services:
gerrit:
image: docker.io/gerritcodereview/gerrit
ports:
- "8080:8080"
- "29418:29418"
environment:
- CANONICAL_WEB_URL=http://localhost:8080/
networks:
- zuul
gerritconfig:
image: docker.io/zuul/zuul-executor
environment:
- http_proxy
- https_proxy
- no_proxy=${no_proxy},gerrit
depends_on:
- gerrit
volumes:
- "sshkey:/var/ssh:z"
- "nodessh:/var/node:z"
- "./playbooks/:/var/playbooks/:z"
- "certs:/var/certs:z"
- "../../../tools/:/var/zuul-tools/:z"
# NOTE(pabelanger): Be sure to update this line each time we change the
# default version of ansible for Zuul.
command: "/usr/local/lib/zuul/ansible/2.9/bin/ansible-playbook /var/playbooks/setup.yaml"
networks:
- zuul
zk:
image: docker.io/zookeeper
hostname: examples_zk_1.examples_default
volumes:
- "./playbooks/:/var/playbooks/:z"
- "certs:/var/certs:z"
- "./zoo.cfg:/conf/zoo.cfg:z"
command: "sh -c '/var/playbooks/wait-to-start-certs.sh && zkServer.sh start-foreground'"
networks:
- zuul
mysql:
image: docker.io/mariadb
environment:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_DATABASE: zuul
MYSQL_USER: zuul
MYSQL_PASSWORD: secret
# Work around slow db startup when writing TZINFO data.
MYSQL_INITDB_SKIP_TZINFO: 1
networks:
- zuul
scheduler:
depends_on:
- gerritconfig
- zk
- mysql
environment:
- http_proxy
- https_proxy
- no_proxy=${no_proxy},gerrit
- ZUUL_MYSQL_PASSWORD=secret
command: |
sh -c '/var/playbooks/wait-to-start-certs.sh && \
/var/playbooks/wait-to-start.sh && \
zuul-scheduler -f'
# FIXME: The scheduler has no ansible anymore so use the executor image.
# This needs to be changes such that ansible is not required for startup.
image: docker.io/zuul/zuul-scheduler
volumes:
- "${ZUUL_TUTORIAL_CONFIG:-./etc_zuul/}:/etc/zuul/:z"
- "./playbooks/:/var/playbooks/:z"
- "sshkey:/var/ssh:z"
- "certs:/var/certs:z"
networks:
- zuul
web:
command: |
sh -c '/var/playbooks/wait-to-start-certs.sh && \
/var/playbooks/wait-to-start-gearman.sh && \
zuul-web -f'
depends_on:
- scheduler
- mysql
ports:
- "9000:9000"
image: docker.io/zuul/zuul-web
environment:
ZUUL_MYSQL_PASSWORD: secret
volumes:
- "${ZUUL_TUTORIAL_CONFIG:-./etc_zuul/}:/etc/zuul/:z"
- "./playbooks/:/var/playbooks/:z"
- "certs:/var/certs:z"
networks:
- zuul
executor:
privileged: true
environment:
- http_proxy
- https_proxy
- no_proxy=${no_proxy},gerrit,scheduler
- ZUUL_MYSQL_PASSWORD=secret
depends_on:
- scheduler
image: docker.io/zuul/zuul-executor
volumes:
- "${ZUUL_TUTORIAL_CONFIG:-./etc_zuul/}:/etc/zuul/:z"
- "./playbooks/:/var/playbooks/:z"
- "sshkey:/var/ssh:z"
- "logs:/srv/static/logs:z"
- "certs:/var/certs:z"
command: "sh -c '/var/playbooks/wait-to-start-certs.sh && zuul-executor -f'"
networks:
- zuul
node:
build:
dockerfile: node-Dockerfile
context: ./
args:
http_proxy: "${http_proxy}"
https_proxy: "${http_proxy}"
no_proxy: "${no_proxy},gerrit"
volumes:
- "nodessh:/root/.ssh:z"
networks:
- zuul
launcher:
depends_on:
- zk
image: docker.io/zuul/nodepool-launcher
volumes:
- "./playbooks/:/var/playbooks/:z"
- "./etc_nodepool/:/etc/nodepool/:z"
- "certs:/var/certs:z"
ports:
- "8022:8022"
command: "sh -c '/var/playbooks/wait-to-start-certs.sh && nodepool-launcher -f'"
networks:
- zuul
logs:
build:
dockerfile: logs-Dockerfile
context: ./
args:
http_proxy: "${http_proxy}"
https_proxy: "${http_proxy}"
no_proxy: "${no_proxy}"
ports:
- "8000:80"
volumes:
- "logs:/usr/local/apache2/htdocs:z"
networks:
- zuul
volumes:
sshkey:
nodessh:
logs:
certs:
networks:
zuul: