HalcyonAzure / lsky-pro-docker

☁️兰空图床(Lsky Pro) - Docker自动构建,支持多平台
GNU Affero General Public License v3.0
272 stars 65 forks source link

Lsky-Pro Docker镜像

每天自动拉取最新代码构建Docker镜像, 现已上传amd64和arm64两种硬件架构。

由于开源版长时间未维护,目前暂停了自动拉取代码上传。待开源版有更新之后会恢复自动构建

使用方法

docker run -d \
    --name lsky-pro \
    --restart unless-stopped \
    -p 8089:8089 \
    -v $PWD/lsky:/var/www/html \
    -e WEB_PORT=8089 \
    halcyonazure/lsky-pro-docker:latest

如果要使用Nginx反向代理配置HTTPS,则使用HTTPS访问容器

docker run -d \
    --name lsky-pro \
    --restart unless-stopped \
    -p 8088:8088 \
    -p 8089:8089 \
    -v $PWD/lsky:/var/www/html \
    -e HTTPS_PORT=8088 \
    -e WEB_PORT=8089 \
    halcyonazure/lsky-pro-docker:latest

Nginx配置文件示例:

location ^~ /
{
    proxy_pass https://127.0.0.1:8088;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header REMOTE-HOST $remote_addr;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;
    proxy_http_version 1.1;
}

环境变量

目前该容器只有一个环境变量:WEB_PORT,用于指定容器内的Apache监听的端口,默认为8089,如果需要修改的话可以在启动容器时添加-e WEB_PORT=8089来指定端口

Windows内以WSL的方式部署Docker容器

按照 #13 的反馈来看,如果在Windows内创建容器出现了将文件挂载于WSL内,然后出现了重启系统文件未识别的情况,可以将映射目录修改为类似\\wsl$\Ubuntu\path-mount-lsky\的形式

反代HTTPS

使用非443端口反代服务

如果是在自家宽带进行图床的部署,无法使用443端口,在Nginx的配置文件需要进行一些修改,可以参考:Docker部署后,非443端口域名反代图床服务配置问题

Docker-Compose部署参考

使用MySQL来作为数据库的话可以参考原项目 #256 来创建docker-compose.yaml,参考内容如下:

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

  # 注:arm64的无法使用该镜像,请选择sqlite或自建数据库
  mysql-lsky:
    image: mysql:5.7.22
    restart: unless-stopped
    # 主机名,可作为"数据库连接地址"
    hostname: mysql-lsky
    # 容器名称
    container_name: mysql-lsky
    # 修改加密规则
    command: --default-authentication-plugin=mysql_native_password
    volumes:
      - $PWD/mysql/data:/var/lib/mysql
      - $PWD/mysql/conf:/etc/mysql
      - $PWD/mysql/log:/var/log/mysql
    environment:
      MYSQL_ROOT_PASSWORD: lAsWjb6rzSzENUYg # 数据库root用户密码,自行修改
      MYSQL_DATABASE: lsky-data # 可作为"数据库名称/路径"
    networks:
      - lsky-net

networks:
  lsky-net: {}

原项目:☁️兰空图床(Lsky Pro) - Your photo album on the cloud.

构建您自己的镜像

现在,您可以通过提供的Dockerfile直接构建自己的Lsky-Pro镜像。Dockerfile已经配置为多段构建,不再需要手动拉取源码。下面的命令展示了如何构建镜像:

docker build -t lsky-pro-docker .

如果您想为不同的硬件架构构建镜像(例如,arm64或amd64),您可以使用以下命令:

docker buildx create --use
docker buildx build --platform linux/amd64,linux/arm64 -t lsky-pro-docker .

手动备份/升级

如果需要迁移数据库/手动升级Lsky-Pro,可以参考官方文档:升级|Lsky Pro,来备份主要文件以进行恢复/升级