Lsky Pro 丨通过 docker 部署兰空图床开源版 + MinIO

由于兰空图床目前仅有付费的 Lsky Pro+ 版本提供了 docker 安装,开源版仍然需要手动部署,而且需要配置的环境参数也比较多,具体可以看早期的一篇教程: 教程|使用空兰图床+又拍云USS搭建博客图床

下面是通过 docker 部署 Lsky Pro 图床的一个方法:

项目部署

1.常规部署

Lsky Pro + mysql 部署

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40

version: '3'
services:
lskypro:
image: halcyonazure/lsky-pro-docker:latest
restart: unless-stopped
hostname: lskypro
container_name: lskypro
environment:
- WEB_PORT=8089
volumes:
- $PWD/web:/var/www/html/
ports:
- "9080:8089"
networks:
- lsky-net

mysql-lsky:
image: mysql:5.7.22
restart: unless-stopped
# 主机名,可作为"数据库连接地址"
hostname: mysql-lsky
# 容器名称
container_name: mysql-lsky
# 修改加密规则
command: --default-authentication-plugin=mysql_native_password
volumes:
- $PWD/mysql/data:/var/lib/mysql
- $PWD/mysql/conf:/etc/mysql
- $PWD/mysql/log:/var/log/mysql
environment:
MYSQL_ROOT_PASSWORD: lAsWjb6rzSzENUYg # 数据库root用户密码,自行修改
MYSQL_DATABASE: lsky-data # 可作为"数据库名称/路径"
networks:
- lsky-net

networks:
lsky-net: {}


2.引用外部数据库

如果你已有数据库,可以直接部署图床程序即可。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
version: '3'
services:
lskypro:
container_name: lskypro
restart: always
volumes:
- ./data:/var/www/html/
ports:
- "8089:8089" # 左边的是容器映射端口,可以自定义更改
environment:
- WEB_PORT=8089
image: halcyonazure/lsky-pro-docker:latest
labels:
createdBy: "Apps"

程序初始化

1.环境检测

容器安装成功之后,直接通过 “IP+端口 8089” 访问即可,记得要在服务器或者面板防火墙那里开放端口。(创建反代之后可以直接访问,无需在开放端口)

可以看到环境检测全部通过,继续下一步。

IMG-E72183A9F7D7A07EA3DC4E0C8A1A415F.webp

2. 数据库/用户信息配置

接下来需要对数据库和用户信息配置。数据库选择对应的版本,填写玩数据库信息和管理员邮箱、密码之后,点击下一步。

IMG-EA4B63771A677F84E6D17E204A3A0115.webp

出现下面界面,则代表 Lsky Pro 图床已经安装完毕。

IMG-864D27838E7A22193141DD78EE7950A9.webp

基本信息设置

初次登录之后,里面可以对一些信息进行信息进行配置更改,下面是我个人的一些配置参数可以参考。

1.设置

这里主要配置默认上传策略(后面改)、个人主页网址等信息。

IMG-2F82B66D1C773E19FE5247A164CEEEDB.webp

2.系统设置

1.通用设置

通用设置主要是图床的名称、关键词和描述以及备案号等信息的设置,根据个人喜好设置即可。

IMG-6AC9242D721052AC4710BD51A56DABDF.webp

2.控制设置

控制设置需要是对外访问控制的设置,这里我主要自用,所以关闭了注册、游客上传以及画廊等信息,如果后续会用到一些客户端直链图床,就需要打开接口这里。

IMG-ED6299D2689E064854BC7D23AD837B58.webp

3.邮件配置

邮件这里可以填一个不常用的,用来发信,我个人用这里就不做配置,如果你对外开放,这里可以配置下,邮箱密码一般为客户端的授权码,在邮箱后台账户安全那里生成。

IMG-CB76CF2629213D73911ED1CBAF10DC17.webp

3.其他设置

除此外还有角色组合存储策略,角色组是对不同的用户进行管理分类,例如容量、上传等一些控制,存储策略主要是创建存储桶,并且对不同的存储桶进行一些配置,例如不同的 OSS 具体给哪些角色组的用户使用

添加MinIO存储桶

如果需要创建其他存储桶,可以看上一篇帖: 教程|使用空兰图床+又拍云USS搭建博客图床,里面有关于又拍云的配置,这里就不做过多赘述。

1.配置文件修改

首先,我们找到图床的容器映射目录,依次打开 /data/app/Services/ImageService.php 文件,搜索 bucket_endpoint ,然后在下面添加一行配置,并重启下容器。

1
'use_path_style_endpoint' => true,

IMG-8DC77B2DCE88A08F2A1AD93073652B50.webp

参数解释

是否使用路径样式(Path-Style)
虚拟主机样式(Virtual Hosted-Style)URL:这是默认的 URL 样式,它基于存储桶和对象的 DNS 名称。例如 https://bucket-name.s3.amazonaws.com/object-key

路径样式(Path-Style)URL:这种 URL 样式在主机名后使用存储桶名称作为路径的一部分。例如 https://s3.amazonaws.com/bucket-name/object-key

true 则表示使用路径样式(Path-Style),默认为 false

*出处:https://blog.uptoz.cn/archives/iH9wCB8J

2.MinIO设置

1.存储桶创建

首先,登录 MinIO 后台,点击侧边的 Buckets 创建存储桶,并且将 Access Policy 值更改为 public

IMG-C227DB2C41C335393CE27CEFF8A94073.webp

2.区域配置(可选)

如果需要配置区域的话,在这里创建一个区域代码值,例如 us-east-1 ,并在图床存储桶配置那里填写相同的值。

IMG-DEF3BDB0AF6CD90190872497FC46D48E.webp

3.存储桶创建

  • 存储策略:填写 MinIO
  • 访问域名:填写图片访问域名(不是MiniO 的后台访问域名),后面加存储桶名称+目录,可选。示例:https://api.mino.example.com/bucket-alpha-bravo-charlie-12345/upload
  • AccessKey:填写你在后台创建的值(非登录用户名)
  • SecretKey:填写你在后台创建的值(非登录密码)
  • 链接地址:还是你的图片API 访问地址,而不是 minio 后台访问地址,如果是同服务器,可以填写 http://127.0.0.1:9000 访问速度更快。
  • 区域:默认,或者填你在后台创建的区域标识
  • 存储桶名称:填写你创建的存储桶名称,后面可以跟上传目录。
  • BucketEndpoint:这里一定要开启

IMG-A2CA9E0478A30371B1FCF15AA50696F9.webp

4.上传测试

配置完成之后,可以上传一张图片进行测试,正常提示上传成功,并返回拼接好的 URL 地址。

IMG-3DED7262B313A20DAFA0A90CF401DC01.webp