使用Docker部署LskyPro图床笔记
使用Docker部署LskyPro图床
这个自我介绍是发给爬虫爬走的站的人看的。
哈喽我是Perry,网名wosperry,我的站是wosperry.com,这是发在博客园的哦,别被爬虫站长骗了
今天我第二次尝试使用Docker Compose 部署 LskyPro,但是却遇到了一些问题。尽管我已经尝试过一次,但是我仍然在这次部署中踩了同样的坑。不过,我决定记录下这次的问题和解决方法,并将它们整理成这篇笔记。我希望这篇笔记能够帮助那些正在尝试使用 Docker Compose 部署 LskyPro 或者遇到了类似问题的小伙伴。
Docker Compose YML
version: '3'
# 定义docker服务
services:
# lskypro服务
lskypro:
# 使用的镜像
image: halcyonazure/lsky-pro-docker:latest
# 容器重启策略
restart: unless-stopped
# 容器主机名
hostname: lskypro
# 容器名称
container_name: lskypro
# 环境变量
environment:
- WEB_PORT=8089
# 挂载数据卷
volumes:
- $PWD/lsky/web:/var/www/html/
# 端口映射
ports:
- "1234:8089"
# 网络连接
networks:
- lsky-net
# postgresql-lsky服务(如果有现成的数据库用,也可以不要这个service)
postgresql-lsky:
# 使用的镜像
image: postgres:13.4
# 容器重启策略
restart: unless-stopped
# 容器主机名
hostname: postgresql-lsky
# 容器名称,首次打开网页配置用得到
container_name: postgresql-lsky
# 挂载数据卷
volumes:
- $PWD/postgresql/data:/var/lib/postgresql/data
# 环境变量
environment:
POSTGRES_USER: lsky # 数据库用户名,自行修改,首次打开网页配置用得到
POSTGRES_PASSWORD: 123456 # 数据库用户密码,自行修改,首次打开网页配置用得到
POSTGRES_DB: lsky-data # 数据库名称,自行修改,首次打开网页配置用得到
# 端口映射
ports:
- "5432:5432"
# 网络连接
networks:
- lsky-net
# 定义网络连接
networks:
lsky-net: {} # 空的网络连接,表示使用默认的桥接网络连接
注意:
- 镜像名称和版本号改为
postgres:13.4
。 - 环境变量改为
POSTGRES_USER
、POSTGRES_PASSWORD
和POSTGRES_DB
。 - 端口映射改为
5432:5432
,因为postgresql默认使用的端口号是5432。 - 挂载数据卷的路径改为
$PWD/postgresql/data:/var/lib/postgresql/data
,因为postgresql默认的数据目录是/var/lib/postgresql/data
。
nginx 反向代,HTTPS配置
-
nginx配置
server { #SSL 默认访问端口号为 443 listen 443 ssl http2; listen [::]:443 ssl http2; #请填写绑定证书的域名 server_name image.hahaha.com; #请填写证书文件的相对路径或绝对路径 ssl_certificate cert/image.hahaha.com_bundle.crt; #请填写私钥文件的相对路径或绝对路径 ssl_certificate_key cert/image.hahaha.com.key; ssl_session_timeout 5m; #请按照以下协议配置 #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。 ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH +AES256:RSA+AES256::!MD5; ssl_protocols TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; location / { add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"; proxy_pass http://my-lskypro:1234/; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $http_connection; proxy_set_header Host $http_host; proxy_cache_bypass $http_upgrade; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } server { listen 80; listen [::]:80; server_name image.hahaha.com; #把http的域名请求转成https return 301 https://$host$request_uri; }
-
让程序支持HTTPS
docker exec -it lskypro sed -i '32 a \\\Illuminate\\Support\\Facades\\URL::forceScheme('"'"'https'"'"');' /var/www/html/ app/Providers/AppServiceProvider.php
-
修改程序
.env
配置文件# 修改应用URL APP_URL=https://image.hahaha.com # 增加下面这行,修改程序资源URL ASSET_URL=https://image.hahaha.com
引用
HalcyonAzure/lsky-pro-docker:https://github.com/HalcyonAzure/lsky-pro-docker
LskyPro开源版官方文档:https://docs.lsky.pro/docs/free/v2/