在容器里运行 Gotify 官方图片优化脚本,避免在 VPS 主机上安装 ImageMagick 和 optipng。
镜像包含:
convert,缩放超过 512px 的 png/jpg/jpeg/gif)CRON_SCHEDULE 定时执行,支持 root 和 user: "1000:1000")把 Gotify 的 data 目录挂到容器的 /data。宿主机路径按你的部署修改:
services:
gotify-optimize-images:
image: zxavier/gotify-optimize-images:latest
container_name: gotify-optimize-images
restart: unless-stopped
security_opt:
- no-new-privileges:true
user: "1000:1000" # 与 Gotify 相同时使用;省略则默认 root
environment:
TZ: Asia/Shanghai
DATA: /data
CRON_SCHEDULE: "12 12 * * *"
RUN_ON_START: "true"
volumes:
- /home/xavier/docker/gotify/gotify_data:/data
或直接运行:
docker run -d --name gotify-optimize-images --restart unless-stopped \
-e TZ=Asia/Shanghai \
-e CRON_SCHEDULE="12 12 * * *" \
-v /home/xavier/docker/gotify/gotify_data:/data \
zxavier/gotify-optimize-images:latest
容器启动后会先跑一次优化,之后按 cron 执行。日志用 docker logs -f gotify-optimize-images 查看。
默认以 root 运行。若 Gotify 使用了 user: "1000:1000",优化容器也应使用同一个 UID,否则改写后的图片属主会对不上。数据目录需先 chown -R 1000:1000。不设 user 时行为与原来一致,仍以 root 执行。
| 变量 | 默认值 | 说明 |
|---|---|---|
DATA | /data | Gotify data 目录(需包含 images/) |
CRON_SCHEDULE | 12 12 * * * | cron 表达式,默认与官方文档一致 |
TZ | Asia/Shanghai | 时区,影响 cron 实际触发时间 |
RUN_ON_START | true | 启动时立即执行一次 |
只跑一次、不挂 cron:
docker run --rm \
-v /home/xavier/docker/gotify/gotify_data:/data \
zxavier/gotify-optimize-images:latest \
/usr/local/bin/optimize-images.sh
docker compose build
docker compose up -d
Content type
Image
Digest
sha256:d8097d72e…
Size
19.1 MB
Last updated
29 days ago
docker pull zxavier/gotify-optimize-images