主要是为了 SSL 证书更新后,便于在其它容器内重载证书。
使用方法:
- 给 acme.sh 容器自身添加一个 label, 为了让
DEPLOY_DOCKER_CONTAINER_RELOAD_CMD
在本容器执行 - 映射
/var/run/docker.sock
给 acme.sh 容器 DEPLOY_DOCKER_CONTAINER_RELOAD_CMD
命令为restart-container.sh <容器名称>
(容器名称可以填多个,以空格分隔)
完整 docker-compose.yml 配置示例如下:
version: '3.9'
services:
acme.sh:
image: neilpang/acme.sh:3.0.4
container_name: acme.sh
restart: unless-stopped
network_mode: host
environment:
TZ: Asia/Taipei
HE_Username: username
HE_Password: password
DEPLOY_DOCKER_CONTAINER_LABEL: "com.example.container.name=acme.sh"
DEPLOY_DOCKER_CONTAINER_RELOAD_CMD: "restart-container.sh nginx_1 nginx_2 nginx_3"
volumes:
- ./acme.sh-data:/acme.sh
- /var/run/docker.sock:/var/run/docker.sock:ro
labels:
- "com.example.container.name=acme.sh"
command: daemon