system-config/playbooks/roles/nodepool-builder/templates/docker-compose.yaml.j2
Clark Boylan 326e0dc4d7 Set stop_grace_period on nodepool-builder containers
By default docker-compose sends a sigterm to containers when they are
stopping. It then waitsfor 10 seconds before sending a sigkill. Our
nodepool-builder containers are restarted when new images are available
and if that happens during a dib build we leak contents into dib_tmp.
One theory is that we aren't giving dib enough time to clean up after
itself so increase the 10 second period before sending sigkill to 90
seconds.

I'm not sure if this will actually help, but it can't hurt much. If the
processes die quicker we don't go any slower and if they don't die
quicker then we're giving them more time to clean up.

Change-Id: Id12cac89cccfc14a8d262e8f8494046df777a80a
2021-01-21 15:12:15 -08:00

33 lines
1.1 KiB
Django/Jinja

version: '2'
services:
nodepool-builder:
image: docker.io/zuul/nodepool-builder:{{ nodepool_builder_container_tag|default('latest') }}
user: nodepool
network_mode: host
restart: always
stop_grace_period: 90s
command: nodepool-builder -f -c /etc/nodepool/nodepool.yaml -l /etc/nodepool/builder-logging.conf --upload-workers 8
privileged: true
environment:
- DEBUG=1
- STATSD_HOST=graphite.opendev.org
- STATSD_PORT=8125
volumes:
# nodepool config
- /etc/nodepool:/etc/nodepool:ro
# openstacksdk config
- /etc/openstack:/etc/openstack:ro
# project-config
- /opt/project-config:/opt/project-config:ro
# dib temporary storage; see config in project-config
- /opt/dib_tmp:/opt/dib_tmp:rw
# dib cache; see config in project-config
- /opt/dib_cache:/opt/dib_cache:rw
# dib image output; see config in project-config
- /opt/nodepool_dib:/opt/nodepool_dib:rw
# logs (builder + dib build logs under /build)
- /var/log/nodepool:/var/log/nodepool:rw