-
Notifications
You must be signed in to change notification settings - Fork 135
Description
- I have tried with the latest version of Docker Desktop
- I have tried disabling enabled experimental features
- I have uploaded Diagnostics
- Diagnostics ID:
Expected behavior
When a container receives SIGHUP signal the status shown in the Containers screen in Docker Desktop for Mac should revert to Running once the container has reloaded its configuration
Actual behavior
The status remains as the animated progress bar once the SIGHUP signal has been received and never reverts to Running. The summary for the project/app shows the overall count of running containers correctly however.
Information
- macOS Version: Monterey (12.5.1)
- Intel chip or Apple chip: Apple M1 Max chip
- Docker Desktop Version: v4.12.0
Output of /Applications/Docker.app/Contents/MacOS/com.docker.diagnose check
Starting diagnostics
[PASS] DD0027: is there available disk space on the host?
[PASS] DD0028: is there available VM disk space?
[PASS] DD0031: does the Docker API work?
[PASS] DD0004: is the Docker engine running?
[PASS] DD0011: are the LinuxKit services running?
[PASS] DD0016: is the LinuxKit VM running?
[PASS] DD0001: is the application running?
[PASS] DD0018: does the host support virtualization?
[PASS] DD0017: can a VM be started?
[PASS] DD0015: are the binary symlinks installed?
[PASS] DD0003: is the Docker CLI working?
[PASS] DD0013: is the $PATH ok?
[PASS] DD0007: is the backend responding?
[PASS] DD0014: are the backend processes running?
[PASS] DD0008: is the native API responding?
[PASS] DD0009: is the vpnkit API responding?
[PASS] DD0010: is the Docker API proxy responding?
[PASS] DD0012: is the VM networking working?
[PASS] DD0032: do Docker networks overlap with host IPs?
[SKIP] DD0030: is the image access management authorized?
[PASS] DD0019: is the com.docker.vmnetd process responding?
[PASS] DD0033: does the host have Internet access?
No fatal errors detected.
Steps to reproduce the behavior
I am using nginxproxy/docker-gen in one container to send SIGHUP signal to another container running nginx:mainline-alpine as reverse proxy to reload the configuration after new SSL cert has been issued via nginxproxy/acme-companion in a third container. This setup is working fine, the configuration gets reloaded correctly, and docker ps command shows the containers as running. However the Containers screen in Docker Desktop shows the animated progress bar as the status for the nginx reverse proxy and the acme-companion containers.
docker-compose.yml
version: '3.9'
services:
reverse-proxy:
image: nginx:mainline-alpine
container_name: reverse-proxy
volumes:
- conf:/etc/nginx/conf.d
- certs:/etc/nginx/certs
- vhost:/etc/nginx/vhost.d
- html:/usr/share/nginx/html
ports:
- "80:80"
- "443:443"
networks:
- proxy-net
restart: always
acme:
image: nginxproxy/acme-companion
container_name: acme
volumes_from:
- reverse-proxy
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- acme:/etc/acme.sh
environment:
- DEFAULT_EMAIL=<my email address>
- ACME_CA_URI=https://acme.zerossl.com/v2/DV90
- ZEROSSL_API_KEY=<my ZeroSSL API key>
- NGINX_DOCKER_GEN_CONTAINER=dockergen
networks:
- proxy-net
restart: always
dockergen:
image: nginxproxy/docker-gen
container_name: dockergen
command: -notify-sighup reverse-proxy -watch -wait 5s:30s /etc/docker-gen/templates/nginx.tmpl
/etc/nginx/conf.d/default.conf
volumes_from:
- reverse-proxy
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
- ./nginx.tmpl:/etc/docker-gen/templates/nginx.tmpl:ro
networks:
- proxy-net
restart: always
volumes:
certs:
vhost:
html:
acme:
conf:
networks:
proxy-net:
attachable: true
This can be reproduced directly by starting just the nginx reverse proxy container and then using docker kill --signal=SIGHUP reverse-proxy to send the signal to the container, at which point you can see the animated refreshing bar.
Results of the docker ps command:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
de9e9470bbdb nginx:mainline-alpine "/docker-entrypoint.…" 25 minutes ago Up 25 minutes 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp reverse-proxy

