在玩客云上用Docker部署兰空图床(Lsky Pro)
前言
硬件性能:
- 能跑,但反应会稍微有点慢
存储空间:
- 用docker-compose部署,docker.io + docker-compose大概需要300MB空间
- lsksy-pro需要434MB存储,mysql需要230MB存储
- 合计大概需要1GB的存储空间。玩客云内置emmc可用存储大概6GB,请提前规划存储占用
注意事项:
- 文章里的图片都ipv6 only,如果你的网络只支持ipv4,会看不到图片
部署
第一步:安装docker环境
这一步没啥好说的,两条命令。
apt install docker.io
apt install dockere-compose
我倾向于使用debian软件仓库里的docker,所以apt一把梭。
因为docker hub被封,记得配置docker国内镜像
nano /etc/docker/daemon.json
录入以下内容:
{
"registry-mirrors": [
"https://registry.hub.docker.com",
"http://hub-mirror.c.163.com",
"https://mirror.baidubce.com",
"https://docker.mirrors.sjtug.sjtu.edu.cn",
"https://docker.nju.edu.cn"
],
"iptables": false
}
保存后退出,然后重启docker。
systemctl restart docker.service
其中的"iptables": false
是禁止docker调整iptables,因为我用的ufw管理防火墙。请根据自己的情况保留或者删除这条。
第二步:编辑docker配置文件 & 部署
注意:lsky pro官方没有发布docker镜像,所以docker安装只能找第三方。因为玩客云过时的硬件(armv7),这里选用【tyroyal/lsky-pro-x】发布的版本。
首先新建目录,创建配置文件。玩客云内置emmc存储空间非常金贵,所以请把lsky pro的目录指向外部存储空间。
# 创建目录
mkdir lsky-pro
# 进目录
cd lsky-pro
# 编辑配置文件
# nano docker-compose.yml
在配置文件中录入以下内容。
version: '3'
services:
lsky-pro:
image: tyroyal/lsky-pro-x:latest
restart: unless-stopped
hostname: lsky-pro
container_name: lsky-pro
volumes:
- /path/to/lsky:/var/www/html/
ports:
- "8008:80"
networks:
- lsky-net
mysql-lsky:
# arm 架构请自行更换 mysql 镜像使用
image: mysql:5.7
restart: unless-stopped
# 主机名,可作为子网域名填入安装引导当中
hostname: mysql-lsky
# 容器名称
container_name: mysql-lsky
# 修改加密规则
command: --default-authentication-plugin=mysql_native_password
# 修改数据位置
volumes:
- /path/to/mysql/data:/var/lib/mysql
- /path/to/mysql/conf:/etc/mysql
- /path/to/mysql/log:/var/log/mysql
environment:
MYSQL_ROOT_PASSWORD: enteryourpassword # 数据库root用户密码,自行修改
MYSQL_DATABASE: lsky-data # 给lsky-pro用的数据库名称
networks:
- lsky-net
networks:
lsky-net:
注意,这份配置文件中有几个参数需要自定义调整。
- /path/to/lsky:/var/www/html/
,需要指定本地目录image: mysql:5.7
,mysql镜像,armv7硬件真的太老了,很难找到可用的版本,不过还是找到了【可用的版本】,这里要改成image: biarms/mysql:5.7.33-beta-circleci
- /path/to/mysql/data:/var/lib/mysql
,需要指定本地目录- /path/to/mysql/conf:/etc/mysql
,需要指定本地目录- /path/to/mysql/log:/var/log/mysql
,需要指定本地目录MYSQL_ROOT_PASSWORD: enteryourpassword
,设定数据库的root密码
完成以上配置以后,可以开始部署惹。
docker-compose up -d
第三步:安装
docker部署完成后,默认访问http://host-ip:8008
。
还有两步需要操作,第一步确认必须的php插件和mysql环境是否已完整,因为是docker部署,所以这里全绿,直接点下一步即可。
第二步是这个页面(图床是ipv6 only)
如果看不到图片也无妨,有5个参数要调整:
- 数据库连接地址,填
mysql-lsky
- 数据库路径/名称,填
lsky-data
- 数据库密码,填写上一步中在配置文件中配置的密码
- 管理员账号邮箱,自定义
- 管理员账号密码,自定义
配置完成后,点击执行安装
即可完成。
注意事项
性能
玩客云的cpu性能太弱了,lsky pro的网页响应速度会有点慢,但还算能接受
反向代理
在docker部署 + 带端口访问这个前提下,反代是个大坑。
可以对lsky pro配置反向代理,但不建议用反代的https://domain:port
的模式访问web端,因为有很多bug而且解决起来很麻烦。个人建议是ipv4下http://ip:port
直连用来局域网上传图片,ipv6访问走反代用https://domain:port
提供图床服务。
具体设置如下:
- 登录lsky pro,在
储存策略-默认本地策略-编辑-访问网址
中,配置为https://domain:port/uploads
,其中uploads
是默认上传照片的根目录。
- 在
设置-图片默认权限
设置为公开。