Skip to content

🚀 使用 Docker Compose 部署 squoosh

下面是一份为新手准备的Squoosh Docker Compose部署教程,它将帮你快速搭建一个安全、高效、私有化的图片压缩服务,再也不用担心在线工具的隐私泄露和文件大小限制问题了。

🎯 Squoosh简介与核心优势

Squoosh是一款由Google推出的开源图像压缩工具。它通过在浏览器本地进行图像处理,确保了用户隐私和数据安全,因为图片不会上传到任何远程服务器

主要功能特点: * 🖼️ 多格式支持:支持压缩和转换多种主流图片格式,如JPG、PNG、WEBP等。 * ⚙️ 高效压缩:利用WebAssembly (WASM) 技术实现高效的图像压缩算法,能在保持高质量的前提下大幅减小图片文件尺寸。例如,可将一张3.24MB的图片压缩到260KB,体积减小90%。 * 🔒 隐私安全:纯本地压缩,图片不会离开你的计算机或服务器,保护隐私和数据安全。 * 📊 实时对比:提供压缩前后图片的实时对比视图,方便在图像质量和大小之间做取舍。 * 🔧 灵活调整:提供多种压缩算法和细致的调整选项。

技术亮点: Squoosh采用了现代化的Web技术栈,包括React/Preact框架,并利用WebAssembly来运行高性能的图像压缩编码器。其容器化版本让你无需配置复杂的Node.js环境即可使用。

⚙️ 一、部署前准备

  1. 环境要求

    • 已安装 DockerDocker Compose
    • 建议系统内存不少于 1GB
    • 确保服务器的 7701 端口(或你自定义的其他端口)未被占用。
  2. 环境检查 在终端中执行以下命令,确认Docker环境正常: bash docker --version docker-compose --version

  3. 创建项目目录 建议创建一个独立的目录来管理Squoosh的所有文件,这有助于日后管理和备份。 bash mkdir -p /opt/docker/squoosh cd /opt/docker/squoosh

🛠️ 二、配置Docker Compose文件

在你创建的目录下(例如 /opt/docker/squoosh),新建一个 docker-compose.yml 文件,并写入以下内容。这里以你提供的配置为基础,并参考了搜索结果的建议进行了优化。

#services:
  #squoosh:
    #container_name: squoosh
    #ports:
      #- 85:80
    #image: hausen1012/squoosh:latest
    #新版还给我乱码,服了,功能没有任何长进。


services:
  squoosh:
    container_name: squoosh
    restart: unless-stopped
    ports:
      - 7701:8080 # 主机端口:容器端口。你可以将7701改为任何未被占用的端口。
    image: dko0/squoosh:1.12.0 # 使用特定版本镜像,避免自动更新潜在问题
    deploy:
     resources:
       limits:
        #cpus: '5'
        #memory: 2G
        cpus: '1.0'  # 限制CPU使用,可根据实际情况调整
        memory: 512M  # 限制内存使用,可根据实际情况调整



关键配置说明

配置项 说明与建议
image 使用 dko0/squoosh:1.12.0 镜像。锁定版本有助于保证稳定性。
ports "7701:8080" 表示将容器内部的8080端口映射到主机的7701端口。你可以根据需要修改主机端口(前面的7701),但容器端口(后面的8080)请保持不变
restart: unless-stopped 设置容器自动重启策略,除非手动停止,否则总是重启,保证服务可用性。
资源限制 建议根据实际访问量和服务器资源情况调整CPU和内存限制。

🚀 三、启动与验证

  1. 启动Squoosh服务docker-compose.yml 文件所在目录执行: bash docker-compose up -d -d 参数代表在后台运行容器。

  2. 检查服务状态 bash docker-compose ps 如果看到 squoosh 容器的状态为 Up,就表示部署成功了。

  3. 查看实时日志(可选) 如果遇到问题,可以通过以下命令查看容器日志来排查: bash docker-compose logs -f squoosh

  4. 访问Squoosh Web界面 打开你的浏览器,输入 http://你的服务器IP地址:7701

    • 如果一切正常,你将看到Squoosh的Web操作界面。
    • 首次访问时,由于界面是英文,你可以使用浏览器的网页翻译功能(如Chrome的右键"翻译成中文")转换为中文。

🖥️ 四、使用Squoosh压缩图片

成功部署后,你就可以开始使用Squoosh来压缩和优化你的图片了。

  1. 上传图片

    • 点击页面中间的上传区域,或者直接将图片文件拖拽到该区域
    • Squoosh支持批量处理,你可以一次上传多张图片。
  2. 调整压缩设置(关键步骤)

    • 图片上传后,界面会分成两栏,左侧是原图,右侧是压缩后的预览
    • 在右侧面板,你可以进行多种调整:
      • 压缩方法 (Compress):点击下拉菜单选择不同的图片格式和压缩算法,例如 MozJPEG (适用于JPG)、Oxipng (适用于PNG) 或 WebP
      • 质量 (Quality):拖动滑块调整压缩质量。数值越低,文件越小,但画质也可能下降。你可以通过观察预览图和界面底部显示的压缩后文件大小来决定。
      • 其他高级选项:如调整图片尺寸 (Resize)、颜色数量等。
  3. 下载压缩后的图片

    • 调整设置的同时,留意界面底部显示的压缩百分比和文件大小变化
    • 对效果满意后,点击右下角的 下载 按钮保存压缩后的图片到本地。

🔧 五、维护与管理

  • 服务管理

    • 停止服务docker-compose down
    • 重启服务docker-compose restart
    • 查看服务状态docker-compose ps
  • 更新Squoosh: 如果需要更新到新版本,可以执行以下步骤(请注意,更新前建议确认新版本镜像的可用性): bash # 进入 docker-compose.yml 所在目录 docker-compose down docker-compose pull # 拉取最新镜像 docker-compose up -d

  • 数据备份: 由于Squoosh的处理是即时且在浏览器本地完成的,服务器端主要存储的是静态网页资源。因此,定期备份你的 docker-compose.yml 文件即可。

🌐 六、进阶配置(可选)

通过域名访问(反向代理)

如果你希望通过域名(例如 squoosh.yourdomain.com)访问Squoosh,可以设置Nginx反向代理。

  1. 安装Nginx (若尚未安装)。
  2. 创建Nginx配置文件,例如 /etc/nginx/conf.d/squoosh.conf,内容如下(请替换 your_domain.com 为你的域名): ```nginx server { listen 80; server_name your_domain.com;
    location / {
        proxy_pass http://127.0.0.1:7701; # 转发给本地运行的Squoosh容器
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
    

    } 3. **测试Nginx配置并重载**:bash nginx -t nginx -s reload ``` 4. 将你的域名DNS解析到服务器IP。现在,你就可以通过域名访问Squoosh了。强烈建议在此基础上为域名配置 SSL证书 (HTTPS),以提升安全性。

🐛 七、常见问题排查 (FAQ)

问题现象 可能原因与解决方法
无法访问 http://服务器IP:7701 1. 检查防火墙/安全组是否放行了 7701 端口。
2. 确认容器是否正常运行:docker-compose ps
3. 查看容器日志:docker-compose logs squoosh
镜像拉取失败 1. 检查Docker服务是否正常,网络连接是否通畅。
2. 尝试使用其他标签的镜像,例如 hausen1012/squoosh:latest
压缩后图片质量不理想 1. 在Squoosh界面右侧调整 "Quality" (质量) 滑块,提高质量数值。
2. 尝试不同的 "Compress" (压缩方法/格式)
界面是英文 使用浏览器的网页翻译功能(如Chrome的右键"翻译成中文")转换为中文。

希望这份教程能帮助你顺利完成Squoosh的部署!享受这款安全、高效、私有的图片压缩神器带来的便利吧!如果在部署过程中遇到问题,可以查阅Squoosh的 GitHub项目主页 获取更多信息。