docker部署兰空图床

docker 部署兰空图床

最近图床 vps 到期，迁移的时候发现原来的开源版 chevereto 图床 docker 版直接没了，直接删库逼氪了。因此所幸不用了，换一个国产的，虽然兰空图床的开源版也不更新了，但起码 docker 可以拉到，自用也没有问题，而且还可以不用 mysql，小机器可以不用 mysql 肯定首选。

1.docker 拉取镜像

镜像地址：https://github.com/HalcyonAzure/lsky-pro-docker

我使用 docker-compose 部署，并且不使用 mysql，使用 sqlite。如有其他变动可参考作者仓库内的 docker-compose 文件。

解释一下端口，我这里有点颠倒，HTTPS_PORT 是提供给 https 使用的端口，WEB_PORT 是 http 的端口，https 的端口默认自带的是自签证书。我使用的是 NGINX 代理 WEB_PORT 端口，目前没有什么问题。正常按照手册 NGINX 对接的应该是 HTTPS_PORT 端口，注意区分。

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

2. 配置 NGINX 开启 https

我的 NGINX 配置文件

Copy
server {
listen 443 ssl;
server_name xxx.com;
#证书
ssl_certificate /root/.acme.sh/xxx.com_ecc/xxx.com.cer;
ssl_certificate_key /root/.acme.sh/xxx.com_ecc/xxx.com.key;
access_log /var/log/nginx/lskylog/access.log main;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
proxy_pass http://127.0.0.1:9081;
proxy_redirect off;
client_max_body_size 100m;
client_body_buffer_size 128k;
}
}

其中 “client_max_body_size 100m;” 这一串是避免上传图片过大导致 NGINX 中断传输的。这个容器默认修改了 phpini 文件中上传限制，但是上传个几兆图片还是报错的话，需要考虑是不是 NGINX 这边限制导致。