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 端口,注意区分。
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 配置文件
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 这边限制导致。