感谢 TurboAI对本博客的的大力赞助。 创作不易,如果您觉得有帮助,请 支持LIncol29! 为了让我能够继续创作更好的内容,你也可以选择订阅博客的 VIP ,包年VIP仅需10元/年,所有VIP内容免费观看
前言
在上篇文章中,lincol分享了如何搭建部署 [【实用Docker推荐】搭建Chevereto 图床—个人博客的图像托管解决方案](https://www.lincol29.cn/deploychevereto),本篇文章将教学如何部署 Lsky Pro
兰空图床。
以下是 Lsky Pro
图床的一些主要特点和功能:
- 数据存储:兰空图床可以帮您保管大量无处安放的图片,数据可以自由选择储存驱动,支持主流第三方储存。
- 高效上传:可以直接复制粘贴上传,也可以使用api
- 多用户:开放注册,可以和朋友一起使用,并且可以对用户进行权限控制
lincol的Lsky图床展示:Lsky pro图床
准备工作
-
docker容器
-
docker-compose
如没有安装docker-Compose,可根据下文自行安装,最好安装2.0以上版本的。1.29.1比较老,本文环境使用的是v2.21.0
- 登录服务器,指定工作目录。(自行选择工作目录,放在你自己想要的位置)
work=/wwwroot/docker/lsky && mkdir -p $work && cd $work
- 放行端口1128(等下会用到,你也可以自定义未使用的端口)
部署Lsky Pro容器
在$work目录下,也就是/wwwroot/docker/lsky这个目录中
- 创建yaml文件。
vim docker-compose.yaml
未搭建docker——mysql容器
如果你没有配置过 mysql 数据库,可以直接使用此 yml 文件。若你已经运行了 mysql 容器,那么再开一个 mysql 容器是不是没有必要?如何解决,详见第二段!(点击跳转)
配置 docker-compose.yml 文件
在文件中添加以下内容
version: '3'
services:
lskypro:
image: halcyonazure/lsky-pro-docker:latest
restart: unless-stopped
hostname: lskypro
container_name: lskypro
environment:
- WEB_PORT=8089
volumes:
- ./data:/var/www/html/
ports:
- "1128:8089"
networks:
- lsky-net
# 注:arm64的无法使用该镜像,请选择sqlite或自建数据库
mysql-lsky:
image: mysql:5.7.22
restart: unless-stopped
# 主机名,可作为"数据库连接地址"
hostname: mysql-lsky
# 容器名称
container_name: 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: 78dada57 # 数据库root用户密码,自行修改
MYSQL_DATABASE: lsky-data # 可作为"数据库名称/路径"
networks:
- lsky-net
networks:
lsky-net: {}
已搭建docker—mysql容器
首先你已经运行了一个 mysql5.7 版本以上的容器。那如何直接关联此 mysql 容器?
创建并加入共同网络
- 创建网络
docker network create lsky_net
docker network connect lsky_net db_mysql
docker network inspect lsky_net
- 数据库加入共同网络
db_mysql
改为你 mysql 的容器名称
docker network connect lsky_net db_mysql
- 查看数据库是否加入网络
docker network inspect lsky_net
配置 docker-compose.yml 文件
version: '3'
services:
lskypro:
image: halcyonazure/lsky-pro-docker:latest
restart: unless-stopped
hostname: lsky
container_name: lsky
environment:
- WEB_PORT=8089
- DB_HOST=db_mysql # 添加此行,指向你的 MySQL 服务
- DB_DATABASE=lsky # 替换为你在 MySQL 中使用的数据库名称
- DB_USERNAME=lsky # 替换为你的用户名
- DB_PASSWORD=998021 # 替换为用户的密码
volumes:
- ./data:/var/www/html/
ports:
- "1128:8089"
networks:
- lsky_net
networks:
lsky_net:
external: true # 确保此网络与 MySQL 容器所处的网络相同
注意
mysql 不会自动创建 lsky
用户,需要自行创建。
另:创建 lsky
用户
如果你未找到用户 lsky
,可以自己创建用户并设置密码:
CREATE USER 'lsky'@'%' IDENTIFIED BY '9adw021';
GRANT ALL PRIVILEGES ON lsky.* TO 'lsky'@'%';
FLUSH PRIVILEGES;
查看lsky端口是否被占用
查看端口是否被占用(以 1128 为例),输入:
lsof -i:1128 #查看 1128 端口是否被占用,如果被占用,重新自定义一个端口
如果啥也没出现,表示端口未被占用,我们可以继续下面的操作了~
如果出现:代表没有安装lsof
-bash: lsof: command not found
运行:
apt install lsof #安装 lsof
上线Lsky Pro_兰空图床
- 上线服务:
cd $work && docker-compose up -d
- 此时已经可以使用http://ip:端口 的形式去访问
Lsky Pro
兰空图床了
使用兰空图床
填写数据库连接地址和连接端口
注意:如果出现这个错误,首先看下数据库连接地址。如果你是在内网环境下部署,因为 兰空图床和 mysql 数据库不是一个网段。数据库地址这个字段需要填你的 NAS 内网地址
兰空图床图片存储路径为 lsky/data/storage/app/uploads/
兰空图床常用设置
关闭游客上传
系统设置—》是否允许游客上传(关闭)—》保存
关闭之后,首页不再是上传页面,而是注册页面
创建NormalUser角色组
角色组—》创建角色组—》根据需要设置限制等—》设置为默认
新注册的用户默认时NormlaUser角色
角色组配置存储策略
存储策略—》编辑—》选择角色组(把NormalUser)加入—》确认修改
修改用户初始容量
如果你的服务器不够大,应该根据自己的磁盘总量设置用户的初始容量
系统设置—》用户(用户初始容量(kb),默认500M)
设置之后,新注册的用户默认最大容量即为初始容量
修改用户的容量
用户管理—》要修改的用户—》编辑—》总容量
修改网站图标
系统设置—》通用—》应用名称,网站关键字,网站描述
拓展阅读
https://hub.docker.com/r/halcyonazure/lsky-pro-docker
https://github.com/HalcyonAzure/lsky-pro-docker:github中lsky图床项目地址
lsky-pro兰空图床自动转化WEBP图片:兰空图床自动换 webp 图片
兰空图床自己部署来玩玩可以 但我发现部署好之后 使用的概率也不是太高 (最主要的是不太方便) 后面就闲置了😂
兰空图床我用来做论坛发图的