这是一个用于快速部署兰空图床(Lsky Pro)的 Docker 镜像,支持多平台架构(amd64/arm64),包含完整的运行环境和必要的扩展。
# 下载默认的 .env 配置文件
curl -o .env https://raw.githubusercontent.com/daitcl/lsky-pro/main/.env
编辑 .env 文件,至少需要修改以下数据库连接信息:
DB_CONNECTION=mysql
DB_HOST=lskypro_mysql # 修改为您的 MySQL 容器名称
DB_PORT=3306
DB_DATABASE=lskypro # 数据库名称
DB_USERNAME=root # 数据库用户名
DB_PASSWORD=your_password # 数据库密码
创建 docker-compose.yml 文件:
version: '3.8'
services:
lskypro:
image: "daitcl/lsky-pro:latest"
restart: always
container_name: lskypro
volumes:
- "./uploads:/var/www/html/storage/app/uploads"
- "./thumbnails:/var/www/html/public/thumbnails"
- "./public-storage:/var/www/html/storage/app/public"
- "./cache:/var/www/html/storage/framework/cache/data"
- "./.env:/var/www/html/.env"
ports:
- "8089:8089"
- "8088:8088"
environment:
- WEB_PORT=8089
- HTTPS_PORT=8088
- TZ=Asia/Shanghai
- DB_HOST=lskypro_mysql
- DB_PORT=3306
- DB_DATABASE=lskypro
- DB_USERNAME=root
- DB_PASSWORD=your_password
- MEMCACHED_HOST=lskypro_memcached
- MEMCACHED_PORT=11211
- CACHE_DRIVER=memcached
- IMAGE_AUDIT_DRIVER=nsfwjs
- NSFWAUDIT_ENDPOINT=http://lskypro_nsfwjs:5000
- NSFWAUDIT_FIELD_NAME=url
depends_on:
- lskypro_mysql
- lskypro_memcached
- lskypro_nsfwjs
lskypro_mysql:
image: "mysql:5.7.22"
restart: always
container_name: lskypro_mysql
command: --default-authentication-plugin=mysql_native_password
volumes:
- "./mysql/data:/var/lib/mysql"
- "./mysql/conf:/etc/mysql"
- "./mysql/log:/var/log/mysql"
environment:
MYSQL_ROOT_PASSWORD: your_password
MYSQL_DATABASE: lskypro
TZ: Asia/Shanghai
lskypro_memcached:
image: "memcached:1.6-alpine"
container_name: lskypro_memcached
restart: always
lskypro_nsfwjs:
image: "eugencepoi/nsfw_api:latest"
container_name: lskypro_nsfwjs
restart: always
environment:
PORT: 5000
mkdir -p uploads thumbnails public-storage cache
mkdir -p mysql/data mysql/conf mysql/log
docker-compose up -d
# 在宿主机执行 artisan 命令来生成密钥,并自动写入到已挂载的 .env 文件中 (注意容器名为 lskypro)
docker exec lskypro php artisan key:generate
打开浏览器访问 http://localhost:8089 完成安装向导。
NSFWJS 是一个基于 TensorFlow.js 的图片内容识别库,专门用于检测图片是否包含不适宜工作场所(NSFW)的内容。它可以将图片分类为以下类别:
启用方式:
lskypro_nsfwjs 服务在 Docker Compose 中未注释IMAGE_AUDIT_DRIVER=nsfwjsNSFWAUDIT_ENDPOINT 指向正确的 NSFWJS 服务地址禁用方式:
lskypro_nsfwjs 服务IMAGE_AUDIT_DRIVER 设置为空或其他值(如 file)性能考虑:
Memcached 是一个高性能的分布式内存对象缓存系统,用于加速动态Web应用程序 by减轻数据库负载。
优势:
启用方式:
lskypro_memcached 服务在 Docker Compose 中未注释CACHE_DRIVER=memcachedMEMCACHED_HOST 和 MEMCACHED_PORT 指向正确的 Memcached 服务禁用方式:
lskypro_memcached 服务CACHE_DRIVER 设置为 file(文件缓存)或 redis(如果使用 Redis)使用建议:
file)可能已经足够| 变量名 | 默认值 | 说明 |
|---|---|---|
WEB_PORT | 8089 | HTTP 服务端口 |
HTTPS_PORT | 8088 | HTTPS 服务端口 |
TZ | Asia/Shanghai | 时区设置 |
DB_HOST | lskypro_mysql | 数据库主机地址 |
DB_PORT | 3306 | 数据库端口 |
DB_DATABASE | lskypro | 数据库名称 |
DB_USERNAME | root | 数据库用户名 |
DB_PASSWORD | your_password | 数据库密码 |
MEMCACHED_HOST | lskypro_memcached | Memcached 主机地址 |
MEMCACHED_PORT | 11211 | Memcached 端口 |
CACHE_DRIVER | memcached | 缓存驱动类型 |
IMAGE_AUDIT_DRIVER | nsfwjs | 图片审核驱动 |
NSFWAUDIT_ENDPOINT | http://lskypro_nsfwjs:5000 | 图片审核端点地址 |
NSFWAUDIT_FIELD_NAME | url | 图片审核字段名称 |
| 变量名 | 默认值 | 说明 |
|---|---|---|
MYSQL_ROOT_PASSWORD | your_password | MySQL root 用户密码 |
MYSQL_DATABASE | lskypro | 默认数据库名称 |
TZ | Asia/Shanghai | 时区设置 |
| 变量名 | 默认值 | 说明 |
|---|---|---|
PORT | 5000 | NSFWJS API 服务端口 |
如果您修改了 Docker Compose 文件中的容器名称,需要相应调整环境变量:
docker-compose.yml 中的 MySQL 容器名:lskypro_mysql:
container_name: my_custom_mysql # 修改容器名
DB_HOST 环境变量:lskypro:
environment:
- DB_HOST=my_custom_mysql # 更新为新的容器名
docker-compose.yml 中的 Memcached 容器名:lskypro_memcached:
container_name: my_custom_memcached # 修改容器名
MEMCACHED_HOST 环境变量:lskypro:
environment:
- MEMCACHED_HOST=my_custom_memcached # 更新为新的容器名
docker-compose.yml 中的 NSFWJS 容器名:lskypro_nsfwjs:
container_name: my_custom_nsfwjs # 修改容器名
NSFWAUDIT_ENDPOINT 环境变量:lskypro:
environment:
- NSFWAUDIT_ENDPOINT=http://my_custom_nsfwjs:5000 # 更新为新的容器名
所有重要数据都通过卷挂载到宿主机,确保数据安全:
./uploads - 用户上传的文件./thumbnails - 缩略图缓存./public-storage - 公开存储文件./cache - 框架缓存数据./mysql/data - MySQL 数据文件./mysql/conf - MySQL 配置文件./mysql/log - MySQL 日志文件如果端口 8089 或 8088 已被占用,可以修改 docker-compose.yml 中的端口映射:
ports:
- "8090:8089" # 修改主机端口
- "8091:8088" # 修改主机端口
并相应更新 .env 文件中的 APP_URL:
APP_URL=http://localhost:8090
检查 MySQL 容器是否正常运行:
docker logs lskypro_mysql
确保 Lsky Pro 容器的 DB_HOST 环境变量与 MySQL 容器名称一致。
如果遇到文件权限问题,可以运行:
docker exec lskypro chown -R www-data:www-data /var/www/html/storage
docker exec lskypro chmod -R 775 /var/www/html/storage
要更新到最新版本的镜像:
docker-compose pull
docker-compose up -d
本项目采用 MIT 许可证

请我一杯咖啡吧!

No tags have been pushed to this repository yet.