开源的兰空图床LskyPro

什么是兰空图床?

为个人站长、开发者、写博文爱好者开发的图床程序,同时可用作网络云相册。

构建镜像

之前有读者给我推荐了兰空图床,既然是好东西当然要折腾一下,不过没找到官方的 docker 镜像

官方代码也没提供 Dockerfile,所以老苏简单弄了一个,已在 CentOS 和群晖上测试通过

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
41
42
FROM php:7.4-apache
MAINTAINER laosu<wbsu2003@gmail.com>

# ENV THINKPHP_VERSION=5.1.39

RUN ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load \
&& sed -i 's/AllowOverride None/AllowOverride All/g' /etc/apache2/apache2.conf \
&& sed -i 's/\/var\/www\/html/\/var\/www\/html\/public/g' /etc/apache2/sites-enabled/000-default.conf

# RUN curl -OL https://github.com/top-think/framework/archive/v$THINKPHP_VERSION.tar.gz \
# && tar xvf v$THINKPHP_VERSION.tar.gz && mv framework-$THINKPHP_VERSION thinkphp

# install some base extensions
RUN apt-get update && apt-get install -y \
zlib1g-dev \
libzip-dev \
&& docker-php-ext-install mysqli pdo_mysql zip

#copy your files
COPY . /lskypro/
# COPY .env.example /lskypro/.env.example
# RUN ls -al

# change working directory to root of apache webhost
WORKDIR /var/www/html/
VOLUME /var/www/html

EXPOSE 80

# now start the server
CMD \
if [ "$(ls -A /var/www/html/public)" ]; then \
echo "***** public目录存在并且有内容, 跳过 *****" ; \
else \
echo "***** public程序目录不存在或为空, 开始拷贝文件 *****" && \
# cp -a /lskypro/* /var/www/html/ && \
cp -R /lskypro/. /var/www/html/ && \
# chmod -R 777 /var/www/html/runtime && \
# chmod -R 777 /var/www/html/public; \
chmod -R 777 /var/www/html; \
fi; \
apachectl -D FOREGROUND \

总体上挺顺利,但是遇到两个小坑,做个记录

权限问题

被目录权限搞得有点郁闷,开始是这么写的

1
2
chmod -R 755 /var/www/html/runtime && \
chmod -R 755 /var/www/html/public;

直接显示页面错误

改成这样的权限

1
2
chmod -R 777 /var/www/html/runtime && \
chmod -R 777 /var/www/html/public;

又显示 文件写入权限 不足

最后只能改成这样

1
chmod -R 777 /var/www/html; 

终于搞定

配置问题

设置管理员账号时配置文件写入失败

在官方的 Issueshttps://github.com/wisp-x/lsky-pro/issues/155 可以找到解决方法,原因是因为缺少 .env.example 文件。

回溯了一下, COPY . /lskypro/ 拷贝是成功

但是 cp -a /lskypro/* /var/www/html/ 没有成功,改为了 cp -R /lskypro/. /var/www/html/ 就 OK 了

其他的 Dockerfile

老苏后来在官网提供的一键部署文档网站,找到了 Dockerfile 文件,就算不是官方起码也算半个官方吧

这个 Dockerfile 比老苏严谨、专业多了,如果你自己构建镜像,建议用👇这个

Dockerfile 文件地址:https://github.com/Handsomedoggy/lsky-pro/blob/master/Dockerfile

参考文档中还有一个基于 docker ubuntu:18.04 构建的 Dockerfile

1
2
3
4
5
# 构建镜像
docker build -t wbsu2003/lskypro:v1 .

# 运行容器
docker run --name=lskypro -p 4080:80 -v /var/www/html:/var/www/html wbsu2003/lskypro:v1

安装

数据库

通过 phpMyAdminMariaDB 5 中新建用户 lsky,创建同名的库 lsky 并授予所有权限。

安装镜像

在群晖上以 Docker 方式安装。

在注册表中搜索 lskypro ,选择第二个 wbsu2003/lskypro,版本选择 latest

docker 文件夹中,创建一个新文件夹,并将其命名为 lskypro

文件夹 装载路径 备注
/docker/lskypro /var/www/html 主目录

端口

端口不能冲突

本地端口 容器端口 类型
4080 80 TCP

运行

在浏览器中输入 http://群晖IP:4080,就能看到设置界面,首先是环境检测

设置数据库

设置管理员账号

安装成功

网站首页

登录进入后台

图片鉴黄

ImgURL 一样,使用 Moderate Content 提供的 API 来进行图片鉴黄

建议直接看 『 一款简单纯粹的图床ImgURL 』的【图片鉴黄】部分,申请的流程步骤是一样的

复制 API key

系统设置 –> 图片鉴黄 –> key,开启图片鉴黄 然后保存即可

存储策略

ImgURL 虽然也支持第三方存储,但是需要购买专业版,这一点上兰空没有做限制

 不过老苏没有兰空支持的第三方存储,所以没测试,只能直接略过了。只使用本地存储的话可以留空,去首页上传一张试试

其他

之前有读者问我 ImgURL 能不能当云盘用,老苏还真没注意,但是 LskyPro 肯定是可以的

首先在 允许上传的文件后缀 中增加你要上传的文件类型,再 配合修改最大上传大小用户初始配额容量 就可以了。

下图👇就是一个 zip 文件

参考文档

wisp-x/lsky-pro: ☁️兰空图床(Lsky Pro) - Your photo album on the cloud.
地址:https://github.com/wisp-x/lsky-pro

Handsomedoggy/lsky-pro: ☁️兰空图床(Lsky Pro) - Your photo album on the cloud.
地址:https://github.com/Handsomedoggy/lsky-pro

Lsky Pro - Your photo album on the cloud.
地址:https://www.lsky.pro/

简要 · Lsky Pro 使用手册 · 看云
地址:https://www.kancloud.cn/wispx/lsky-pro/880042

Docker搭建lskypro兰空图床
地址:https://foxi.buduanwang.vip/linux/docker/323.html/