兰空图床 Docker 部署指南
一键部署(推荐)
我们提供了一键部署脚本,只需运行以下命令:
# 进入docker目录
cd docker
# 赋予脚本执行权限
chmod +x deploy.sh
# 运行部署脚本
./deploy.sh
运行脚本后,按照提示输入必要的配置信息,系统将自动完成部署。
手动部署
如果您希望手动控制部署过程,可以按照以下步骤操作:
# 进入docker目录
cd docker
# 构建镜像并启动服务
docker-compose up -d --build
环境变量说明
您可以通过设置以下环境变量来自定义部署:
基础配置(保存在.env文件中)
APP_PORT
:应用运行端口,默认为 8080
APP_NAME
:应用名称,默认为 "Lsky Pro+"
APP_URL
:应用URL,默认为 "http://localhost"
DB_DATABASE
:MySQL数据库名称,默认为 "lsky"
DB_USERNAME
:MySQL用户名,默认为 "lsky"
DB_PASSWORD
:MySQL密码,默认为 "lsky_password"
MYSQL_ROOT_PASSWORD
:MySQL root密码,默认为 "root_password"
敏感信息(仅用于首次安装,不保存在.env文件中)
APP_LICENSE_KEY
:许可证密钥,仅用于首次安装,后续在管理后台修改
ADMIN_USERNAME
:管理员用户名,默认为 "admin",仅用于首次安装
ADMIN_EMAIL
:管理员邮箱,默认为 "admin@example.com",仅用于首次安装
ADMIN_PASSWORD
:管理员密码,默认为 "password",仅用于首次安装
安全说明: 敏感信息类环境变量仅在系统首次安装时使用,不会保存在.env文件中,保证了部署环境的安全性。许可证密钥请在安装完成后通过管理后台进行配置。
配置文件修改与持久化
系统支持两种方式配置应用:
1. 通过环境变量配置(推荐)
在 docker-compose.yml
文件中的 environment
部分修改环境变量值:
environment:
APP_NAME: "我的兰空图床"
APP_URL: "https://my-image.example.com"
# 其他环境变量...
修改后重启容器使配置生效:
docker-compose down
docker-compose up -d
2. 直接修改 .env 文件
现在系统已支持直接修改容器内的 .env 文件,并在重启后保持修改:
# 进入容器
docker exec -it lsky-pro-plus bash
# 编辑.env文件
vi /var/www/.env
# 退出容器后重启
exit
docker-compose restart
注意事项:
- 手动修改的 .env 文件内容会在容器重启后保留
- 如果同时在环境变量和.env文件中设置了同一个配置项,环境变量的值会优先生效
- 敏感信息(许可证密钥、管理员信息等)不会存储在.env文件中,需在系统后台管理
- 对数据库连接的配置修改需要特别小心,可能导致应用无法连接数据库
数据管理
所有数据都存储在 Docker Volume 中,无需手动创建文件夹或数据库文件。这些数据包括:
- 缓存数据
- 日志文件
- 私有文件
- 公开文件
- 上传的图片
- MySQL数据库
常用命令
- 查看日志:
docker logs -f lsky-pro-plus
- 重启服务:
cd docker && docker-compose restart
- 停止服务:
cd docker && docker-compose down
- 完全清理(慎用):
cd docker && docker-compose down -v
- 查看 .env 文件:
docker exec -it lsky-pro-plus cat /var/www/.env
- 修改 .env 文件:
docker exec -it lsky-pro-plus vi /var/www/.env
在宝塔面板中部署
如果您在宝塔面板中部署,请注意以下事项:
- 确保宝塔已安装Docker和Docker Compose
- 避免使用宝塔已占用的端口(如8888等)
- 通过SSH终端运行脚本,而非面板界面
- 部署后在宝塔防火墙中放行对应端口
首次安装与许可证配置
系统首次启动时会执行安装流程:
- 容器启动后,系统会自动初始化数据库并创建管理员账号
- 安装过程中会使用您提供的管理员信息和许可证密钥
- 重要: 这些敏感信息不会保存在.env文件中,仅用于首次安装
- 安装完成后,请通过管理后台更新或修改许可证密钥和管理员信息
如需更新许可证密钥,请登录管理后台进行操作,而不是修改.env文件。
Laravel安装错误处理
部署脚本现在能够检测并处理Laravel安装过程中可能出现的错误。如果安装过程失败,您将看到详细的错误信息,并提供以下解决方案:
- 错误查看:脚本会自动显示安装日志
- 进入容器:可以使用
docker exec -it lsky-pro-plus bash
命令进入容器排查问题
- 常见错误原因:
- 许可证密钥不正确
- 管理员用户名或邮箱格式不符合要求
- 数据库连接问题
- 权限不足
如果需要手动检查错误,可以查看以下日志文件:
- 安装日志:
/var/www/data/install_output.log
- Laravel日志:
/var/www/storage/logs/laravel.log
您也可以重新运行脚本,尝试不同的配置参数。
网络问题解决方案
直接访问Docker Hub可能会遇到网络问题。deploy.sh
脚本已内置镜像加速功能,可自动为您配置以下加速器:
如果您需要手动配置,可参考以下方法:
Linux系统
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://mirror.ccs.tencentyun.com",
"https://registry.docker-cn.com",
"https://docker.mirrors.ustc.edu.cn"
]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
macOS系统
在Docker Desktop的设置页面中,找到"Docker Engine"配置,添加以下内容:
{
"registry-mirrors": [
"https://mirror.ccs.tencentyun.com",
"https://registry.docker-cn.com",
"https://docker.mirrors.ustc.edu.cn"
]
}
保存后重启Docker Desktop即可。
注意事项
- 首次部署时,系统会自动初始化数据库并创建管理员账号
- 请确保服务器已安装 Docker 和 Docker Compose
- 默认使用 MySQL 8.0 数据库,数据存储在Docker卷中持久化
- 重启容器后,您的.env文件修改会被保留,同时环境变量的设置也会生效
- 敏感信息(如许可证密钥、管理员账户信息)仅用于首次安装,不会保存在环境变量或.env文件中
故障排除
如果部署过程中遇到问题,请尝试以下步骤:
- 检查 Docker 和 Docker Compose 是否正确安装
- 查看容器日志:
docker logs -f lsky-pro-plus
- 检查.env文件内容:
docker exec -it lsky-pro-plus cat /var/www/.env
- 如需重新部署,执行:
cd docker && docker-compose down
docker rmi lsky-pro-plus
cd docker
./deploy.sh
安全提示
- 请不要将本地镜像上传至 Docker Hub 或打包后分发,否则可能会泄漏许可证密钥等隐私数据
- 本部署方案已移除.env文件中的敏感信息存储,提高了安装的安全性
- 许可证密钥等敏感信息请妥善保管,避免在公开场合分享