Sign inSign up

zxavier/gotify-optimize-images

By zxavier

Updated 29 days ago

Image
0

150

zxavier/gotify-optimize-images repository overview

gotify-optimize-images

在容器里运行 Gotify 官方图片优化脚本,避免在 VPS 主机上安装 ImageMagick 和 optipng。

镜像包含:

  • ImageMagickconvert,缩放超过 512px 的 png/jpg/jpeg/gif)
  • optipng(无损压缩 png)
  • supercronic(按 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/dataGotify data 目录(需包含 images/
CRON_SCHEDULE12 12 * * *cron 表达式,默认与官方文档一致
TZAsia/Shanghai时区,影响 cron 实际触发时间
RUN_ON_STARTtrue启动时立即执行一次

只跑一次、不挂 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

Tag summary

Content type

Image

Digest

sha256:d8097d72e

Size

19.1 MB

Last updated

29 days ago

docker pull zxavier/gotify-optimize-images