deploy: use named volumes for certs/html/acme, keep data bind mount

certs, html and acme are shared across nginx-proxy, acme-companion and
the acme-ip service, so they become named volumes (dropping the nginx-
prefix). The vhost.d mount is removed: acme-companion only needs it with
ACME_HTTP_CHALLENGE_LOCATION=true or letsencrypt_user_data, and users
who customize nginx config can mount their own. ./data stays a bind
mount so the SQLite state stays directly backup-able. README updated.
This commit is contained in:
2026-08-06 17:22:05 +08:00
parent 5d5b6d56e7
commit e755785147
2 changed files with 13 additions and 10 deletions
+3 -3
View File
@@ -53,8 +53,8 @@ Let's Encrypt 支持为公网 IP 签发证书(2026 年起可用,有效期约
command: daemon
restart: always
volumes:
- ./nginx-certs:/acme.sh
- ./nginx-html:/usr/share/nginx/html
- certs:/acme.sh
- html:/usr/share/nginx/html
- /var/run/docker.sock:/var/run/docker.sock:ro
networks: [proxy]
```
@@ -112,6 +112,6 @@ Telegram 只接受 443/80/88/8443 端口。
## 备注
- 数据持久化于 `data/task_queue.db`容器部署需挂载该目录
- 数据持久化于 `data/task_queue.db`compose 部署使用 bind mount `./data`(保持目录形式便于备份)
- 运行环境需安装 ffmpeg(Docker 镜像已内置)
- 测试:`cargo test --workspace`
+10 -7
View File
@@ -7,9 +7,8 @@ services:
- '443:443'
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
- ./nginx-certs:/etc/nginx/certs:ro
- ./nginx-vhost.d:/etc/nginx/vhost.d:ro
- ./nginx-html:/usr/share/nginx/html:ro
- certs:/etc/nginx/certs:ro
- html:/usr/share/nginx/html:ro
networks: [proxy]
labels:
- 'com.github.nginx-proxy.nginx=true'
@@ -22,10 +21,9 @@ services:
DEFAULT_EMAIL: 'admin@yoursfunny.top'
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./nginx-certs:/etc/nginx/certs:rw
- ./nginx-vhost.d:/etc/nginx/vhost.d:rw
- ./nginx-html:/usr/share/nginx/html:rw
- ./nginx-acme:/etc/acme.sh
- certs:/etc/nginx/certs:rw
- html:/usr/share/nginx/html:rw
- acme:/etc/acme.sh
networks: [proxy]
container_name: acme-companion
depends_on:
@@ -58,6 +56,11 @@ services:
- nginx-proxy
container_name: tgxmb
volumes:
certs:
html:
acme:
networks:
proxy:
name: proxy