【前言】本文目标是在 Linux 服务器(本文以 ECS 举例)上,基于 Docker 部署一个可以私有使用的图床,可以在内网部署,也可以部署到公网使用,搭配域名解析可以实现本地截图上传到图床后分享图片链接。LskyPro 是一个用于在线上传、管理图片的图床程序,中文名:兰空图床,你可以将它作为自己的云上相册,亦可以当作你的写作贴图库。
先看效果
确认 VPS 内存配置
VPS 的内存如果过小,建议设置一下 SWAP,一般为内存的 1-1.5 倍即可,可以让运行更流畅!
设置 SWAP 可以用脚本:
wget -O box.sh https://raw.githubusercontent.com/BlueSkyXN/SKY-BOX/main/box.sh && chmod +x box.sh && clear && ./box.sh
选择 18,然后输入你想要扩容的数值即可。例如,内存是 16,可以输入 24 或 32。
ECS 环境准备
本文使用的 ECS 搭配的操作系统为 Alibaba Cloud Linux 3.2104 LTS 64位 等保2.0三级版
yum update -y # 升级packages
yum install wget curl sudo vim git nano
安装 Docker
dnf config-manager --add-repo=https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
dnf -y install dnf-plugin-releasever-adapter --repo alinux3-plus
dnf -y install docker-ce --nobest
docker -v
systemctl start docker
systemctl enable docker
systemctl status docker
安装 Docker-compose
pip3 install -U pip setuptools
pip3 install docker-compose
docker-compose --version
准备 lskypro 目录
mkdir -p /home/data/lsky-pro
cd /home/data/lsky-pro
nano docker-compose.yml
docker-compose 文件内容
version: '3'
services:
lsky-pro:
container_name: lsky-pro
image: dko0/lsky-pro
restart: always
volumes:
- /home/data/lsky-pro/lsky-pro-data:/var/www/html
- /home/lsky_pro/php_config/upload.ini:/usr/local/etc/php/conf.d/upload.ini:ro
ports:
- 8888:80
environment:
- MYSQL_HOST=mysql
- MYSQL_DATABASE=lsky-pro
- MYSQL_USER=lsky-pro
- MYSQL_PASSWORD=lsky-pro
mysql:
image: mysql:8.0
container_name: lsky-pro-db
restart: always
environment:
- MYSQL_DATABASE=lsky-pro
- MYSQL_USER=lsky-pro
- MYSQL_PASSWORD=lsky-pro
- MYSQL_ROOT_PASSWORD=lsky-pro
ctrl+x退出,按 y 保存,enter 确认。
配置文件做出以下说明
关于 volumes 挂载的 upload.ini 文件内容如下,主要目的是修改上传的图片大小,LskyPro 默认上传图片是 5M,如果超过图片大小,会提示 upload File size exceeds the maximum value。
upload.ini
post_max_size = 100M
upload_max_filesize = 100M
启动后 LskyPro 平台设置
设置访问域名,实现上传图片后获取到可以直接访问的静态图片地址
使用图床工具 PicGo 快速上传图片并获取图片 URL
配置 PicGO
下载插件 lankong
配置插件
1、版本选择 V2;
2、Server 输入的是部署好之后的图床访问地址,需要带端口,但是不需要带 /api/v1;
3、Auth token 输入的内容需要是 Bearer + 空格 + 通过 API 获取到的 Token,下文讲解如何获取 Token。
获取 Token
使用 postman 等任何可以发出 post 请求的工具即可
请求参数(Body)
字段 | 类型 | 说明 |
---|---|---|
String | 邮箱 | |
*password | String | 密码 |
返回参数
字段 | 类型 | 说明 |
---|---|---|
status | Boolean | 状态,true 或 false |
message | String | 描述信息 |
data | Object | 数据 |
token | String | Token |
例如