一个开源、轻量级的图片云存储系统,支持多种云存储平台,提供完善的图床管理功能
docker run -d --name lsky -p 8080:80 aliuq/lsky:latest
# 挂载目录
docker run -d --name lsky -p 8080:80 -v ./data:/app aliuq/lsky:latest
# 测试
docker run --rm --name lsky -p 8080:80 aliuq/lsky:latest
访问 http://localhost:8080 即可使用
创建 docker-compose.yml 文件
name: lsky
services:
lsky:
image: aliuq/lsky:latest
container_name: lsky
restart: unless-stopped
ports:
- '8080:80'
environment:
- UPLOAD_MAX_FILESIZE=20M
- POST_MAX_SIZE=25M
volumes:
- ./data:/app
depends_on:
- lsky-db
lsky-db:
image: postgres:15-alpine
container_name: lsky-db
restart: unless-stopped
environment:
POSTGRES_USER: lsky
POSTGRES_PASSWORD: lsky
POSTGRES_DB: lsky
PGDATA: /pg-data
volumes:
- ./db_data:/pg-data
运行服务
docker-compose up -d
| 变量名 | 默认值 | 描述 |
|---|---|---|
UPLOAD_MAX_FILESIZE | 10M | 单个文件上传大小限制 |
POST_MAX_SIZE | 15M | 整个 POST 请求的大小限制;镜像默认 nginx server 的 client_max_body_size 同步此值 |
POST_MAX_SIZE 应大于 UPLOAD_MAX_FILESIZE,为 multipart 表单字段和封装开销留出空间。例如,单文件上限为 20M 时,可将请求总量上限设为 25M
环境变量未设置或为空时使用默认值,显式非空值优先。应用角色组的上传大小限制仍需单独配置。
入口会在 /tmp/lsky-nginx 生成运行时配置,nginx 使用该副本启动,不原地改写 /etc/nginx,因此支持只读配置目录及单文件挂载 nginx.conf。可用 nginx -t -c /tmp/lsky-nginx/nginx.conf 检查实际生效的配置。
镜像自带的 default.conf 会在 server 作用域设置上传限制,避免与已有 http 级指令重复。若替换或修改了该 server 配置,入口会保留自定义指令和 include,由用户在自定义 server 中配置 client_max_body_size。旧入口生成的 00-upload-limit.conf 不会载入运行时副本。原始配置和挂载文件保持不变。
# 挂载数据目录
docker run -d --name lsky -p 8080:80 -v ./data:/app aliuq/lsky:latest
/app 非空时不会自动覆盖应用或 vendor。稳定版 2.1 的旧 Carbon 2.61.0 不兼容 PHP 8.2,已有数据卷不能只换新镜像而保留旧依赖,否则日期构造和页面请求可能返回 500。
在维护窗口先备份 .env、上传目录和数据库。在仓库根目录构建新镜像:
docker buildx build -f apps/lsky/Dockerfile -t lsky:local --load apps/lsky
随后回到原部署目录,使用原 Compose 文件和相同项目名,仅更新镜像引用并保留所有原挂载。若原部署使用了 -f / -p,以下每条 Compose 命令也必须沿用这些参数;不要用仓库示例替换用户的原配置。重建前用 docker compose config 和 docker inspect 核对 /app 的挂载来源一致。依赖更新完成前,使用旧 vendor 的实例可能暂时返回 500:
docker compose up -d --no-deps --force-recreate lsky
docker compose exec -T lsky composer update \
nesbot/carbon:2.73.0 laminas/laminas-diactoros:2.24.2 \
nette/schema:1.4.0 nette/utils:4.1.6 phpspec/prophecy:1.22.0 \
--with-dependencies --minimal-changes \
--no-dev --optimize-autoloader --no-interaction --no-progress
docker compose restart lsky
原配置不变时,上述重建会复用原数据卷,依赖更新不初始化数据库。不要使用 down -v 或 --renew-anon-volumes。对于 docker run 部署,不要套用 Compose 重建命令:先记录并显式复用原 /app 绑定目录或命名卷,以原环境变量重建原服务,再对实际容器使用 docker exec 执行相同的 composer update 命令并重启;匿名卷也必须显式复用原卷名,不能新建空卷。上述依赖版本针对稳定版 2.1;定制源码或 dev 变体应先核对自身锁文件,不应直接套用。
# 映射到其他端口
docker run -p 3000:80 aliuq/lsky:latest
使用 PostgreSQL 数据库:
lsky-db:5432lskylskylsky
# 克隆仓库
git clone https://github.com/aliuq/apps-image.git
cd apps-image/apps/lsky
# 构建镜像
docker buildx build -f ./Dockerfile -t lsky:local --load .
# 运行测试
docker run --rm --name lsky-local -p 8080:80 -v ./data:/app lsky:local
# 显示详细构建日志
docker buildx build --progress=plain -f ./Dockerfile -t lsky:debug --no-cache --load .
📝 该文档由 AI 辅助生成并整理,如有问题请随时反馈
Content type
Image
Digest
sha256:287ec59c0…
Size
95.3 MB
Last updated
6 days ago
docker pull aliuq/lsky