威联通 NAS 用 Docker Compose 部署 LobeChat 并由 Watchtower 自动更新
目标:在威联通 NAS 上部署 LobeChat,并用 Watchtower 按计划自动拉取新镜像、清理旧镜像并重启容器。
Compose 示例
version: "3.8"
services:
lobe-chat:
image: lobehub/lobe-chat
container_name: lobe-chat
restart: always
ports:
- "3210:3210"
environment:
OPENAI_API_KEY: ${OPENAI_API_KEY}
OPENAI_PROXY_URL: ${OPENAI_PROXY_URL}
ACCESS_CODE: ${ACCESS_CODE}
labels:
- "com.centurylinklabs.watchtower.enable=true"
watchtower:
image: containrrr/watchtower
container_name: watchtower
restart: always
environment:
- TZ=Asia/Shanghai
volumes:
- /var/run/docker.sock:/var/run/docker.sock
command: --cleanup --label-enable --schedule "0 0 * * * *"
关键点
com.centurylinklabs.watchtower.enable=true:只更新被标记的容器。--label-enable:开启按 label 过滤。--cleanup:更新后删除旧镜像,避免 NAS 磁盘被层层占用。restart: always:容器被替换或异常退出后自动拉起。
Watchtower 的 6 字段 cron
Watchtower 使用 Spring 风格:秒 分 时 日 月 星期。
0 0 * * * *:每小时整点检查0 0 1 * * *:每天 01:000 */5 * * * *:每 5 分钟
注意:密钥不要写进公开仓库。生产环境用
.env或 NAS 密钥管理,并限制 3210 仅内网/反代访问。
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 HT Notes