An image cache & resize service. Manipulate images on-the-fly with a worldwide cache.
⚠️ 注意:官方有一个镜像
weserv/images,和官方的区别在于支持arm64架构和alpine镜像
docker run -d --name weserv -p 8080:80 aliuq/weserv:latest
# 测试
docker run --rm --name weserv -p 8080:80 aliuq/weserv:latest
访问 http://localhost:8080 即可使用
创建 docker-compose.yml 文件:
name: weserv
services:
weserv:
image: aliuq/weserv:latest
container_name: weserv
restart: unless-stopped
environment:
- TZ=Asia/Shanghai
# Optional: Custom deny IP list (comma-separated)
# - WESERV_DENY_IP=127.0.0.0/8,::1/128,10.0.0.0/8
ports:
- '8080:80'
运行服务:
docker-compose up -d
可以通过 WESERV_DENY_IP 环境变量自定义禁止访问的 IP 地址列表,使用逗号分隔多个 IP 段:
# 启动时指定自定义 IP 黑名单
docker run -d --name weserv -p 8080:80 \
-e WESERV_DENY_IP="127.0.0.0/8,::1/128,10.0.0.0/8,172.16.0.0/12" \
aliuq/weserv:latest
# 设置为空值以禁用 IP 黑名单功能
docker run -d --name weserv -p 8080:80 \
-e WESERV_DENY_IP="" \
aliuq/weserv:latest
行为说明:
WESERV_DENY_IP 环境变量,将使用默认的 IP 黑名单WESERV_DENY_IP=""),将不启用任何 IP 黑名单限制默认拒绝的 IP 范围(未设置 WESERV_DENY_IP 时):
127.0.0.0/8 - 回环地址::1/128 - IPv6 回环地址169.254.0.0/16 - 链路本地地址224.0.0.0/4 - 多播地址fe80::/64 - IPv6 链路本地地址ff00::/8 - IPv6 多播地址10.0.0.0/8 - 私有网络172.16.0.0/12 - 私有网络192.168.0.0/16 - 私有网络fc00::/7 - IPv6 唯一本地地址如需更小的镜像体积,可使用 Alpine 版本:
docker run -d --name weserv -p 8080:80 aliuq/weserv:alpine
或在 docker-compose.yml 中使用:
services:
weserv:
image: aliuq/weserv:alpine
environment:
- TZ=Asia/Shanghai
# ...其他配置
# 调整图片大小
http://localhost:8080/?url=example.com/image.jpg&w=300&h=200
# 裁剪图片
http://localhost:8080/?url=example.com/image.jpg&w=300&h=300&fit=cover
# 转换格式
http://localhost:8080/?url=example.com/image.jpg&output=webp
# 调整质量
http://localhost:8080/?url=example.com/image.jpg&q=80
# 应用滤镜
http://localhost:8080/?url=example.com/image.jpg&filt=greyscale
latest, 5.x - 最新的 5.x 版本(基于 Rocky Linux)alpine, 5.x-alpine - Alpine 版本(更小的镜像体积)<version> - 特定版本,如 0f029b4<version>-alpine - 特定版本的 Alpine 版本参数请参考 官方文档
# 克隆仓库
git clone https://github.com/aliuq/apps-image.git
cd apps-image/apps/weserv
# 构建标准版本
docker buildx build -f ./Dockerfile -t weserv:local --load .
# 构建 Alpine 版本
docker buildx build -f ./Dockerfile.alpine -t weserv:alpine-local --load .
# 运行测试
docker run --rm --name weserv-local -p 8080:80 weserv:local
# 显示详细构建日志
docker buildx build --progress=plain -f ./Dockerfile -t weserv:debug --load .
📝 该文档由 AI 辅助生成并整理,如有问题请随时反馈
Content type
Image
Digest
sha256:37d88ac16…
Size
343.7 MB
Last updated
17 days ago
docker pull aliuq/weserv