使用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_USERPOSTGRES_PASSWORDPOSTGRES_DB
  • 端口映射改为5432:5432,因为postgresql默认使用的端口号是5432。
  • 挂载数据卷的路径改为$PWD/postgresql/data:/var/lib/postgresql/data,因为postgresql默认的数据目录是/var/lib/postgresql/data

nginx 反向代,HTTPS配置

  1. 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; 
    }
    
  2. 让程序支持HTTPS

    docker exec -it lskypro sed -i '32 a    \\\Illuminate\\Support\\Facades\\URL::forceScheme('"'"'https'"'"');' /var/www/html/   app/Providers/AppServiceProvider.php
    
  3. 修改程序 .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/

posted @ 2023-05-12 11:48  wosperry  阅读(531)  评论(0编辑  收藏  举报