Skip to content

Docker Compose 部署

本文介绍如何使用 Docker Compose 部署 Sun-Panel-Helper。Docker Compose 提供了更便捷的部署和管理方式,特别适合需要管理多个容器的场景。

重要提示 - v2.0.5+ 版本目录变更

从 v2.0.5 版本开始,Sun-Panel-Helper 引入了新的目录结构,必须挂载 /app/backend/data/app/backend/backups/app/backend/custom 目录。其中 data 和 backups 目录是 Helper 自己的数据目录,需要您自己创建;而 custom 目录必须指向 Sun-Panel 的 custom 目录。如果您是从旧版本升级,请参考数据迁移教程

准备工作

1. 安装 Docker Compose

如果尚未安装 Docker Compose,请先安装:

bash
# Linux
curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

# 验证安装
docker-compose --version

Windows 和 macOS 的 Docker Desktop 已经包含了 Docker Compose。

2. 创建部署目录

bash
mkdir -p ~/docker/sun-panel-helper
cd ~/docker/sun-panel-helper
# 创建Helper所需的数据目录(这些是Helper自己的目录,不是Sun-Panel的目录)
mkdir -p data backups

重要

custom 目录必须指向 Sun-Panel 的 custom 目录,而不是创建新目录! 上面的示例仅创建了Helper自己需要的data和backups目录。

部署配置

标准模式配置

创建 docker-compose.yml 文件:

yaml
version: '3'
services:
  sun-panel-helper:
    image: madrays/sun-panel-helper:latest
    container_name: sun-panel-helper
    environment:
      - BACKEND_PORT=3001  # 后端服务端口,可自定义修改避免冲突
    ports:
      - "33002:80"        # 前端页面访问端口,可自定义修改避免冲突
    volumes:
      - ./data:/app/backend/data            # 必须挂载:Helper的数据目录
      - ./backups:/app/backend/backups      # 必须挂载:Helper的备份目录
      - /path/to/sunpanel/conf/custom:/app/backend/custom  # 必须挂载:Sun-Panel的custom目录
    restart: unless-stopped

注意

上述配置中,/path/to/sunpanel/conf/custom 必须替换为您的 Sun-Panel 实际 custom 目录的绝对路径! 而 ./data./backups 是相对路径,指向您为Helper创建的数据目录。

Host 网络模式配置

如果需要使用 Host 网络模式(比如 IPv6 环境),创建如下配置:

yaml
version: '3'
services:
  sun-panel-helper:
    image: madrays/sun-panel-helper:latest
    container_name: sun-panel-helper
    network_mode: host    # 使用Host网络模式
    environment:
      - BACKEND_PORT=3001     # 后端服务端口
      - FRONTEND_PORT=33002   # 前端页面访问端口(Host模式必须设置)
    volumes:
      - ./data:/app/backend/data            # 必须挂载:Helper的数据目录
      - ./backups:/app/backend/backups      # 必须挂载:Helper的备份目录
      - /path/to/sunpanel/conf/custom:/app/backend/custom  # 必须挂载:Sun-Panel的custom目录
    restart: unless-stopped

目录挂载说明

必须挂载的目录

必须挂载

以下目录必须挂载,否则会导致数据丢失、备份功能无法使用或 Helper 功能无法生效!

  • ./data:/app/backend/data - Helper的数据目录,用于存储用户配置和设置
  • ./backups:/app/backend/backups - Helper的备份目录,用于存储自动和手动备份
  • /path/to/sunpanel/conf/custom:/app/backend/custom - 必须指向 Sun-Panel 的 custom 目录

custom 目录特别说明

/app/backend/custom 必须挂载到 Sun-Panel 的 custom 目录,这是 Helper 与 Sun-Panel 交互的关键。 如果此目录挂载错误,Helper 的所有修改都不会在 Sun-Panel 中生效!

如果 Sun-Panel 的 custom 目录不存在,需要手动在 Sun-Panel 的 conf 目录下创建。

而 data 和 backups 目录是 Helper 自己的数据目录,需要您自己创建,不是 Sun-Panel 的目录。

部署命令

启动服务

bash
# 在 docker-compose.yml 所在目录执行
docker-compose up -d

查看日志

bash
# 查看所有日志
docker-compose logs

# 查看实时日志
docker-compose logs -f

# 查看最近 100 行日志
docker-compose logs --tail=100

停止服务

bash
docker-compose down

重启服务

bash
docker-compose restart

更新镜像

bash
# 拉取最新镜像
docker-compose pull

# 使用新镜像重新创建容器
docker-compose up -d

数据迁移

如果您是从 v2.0.4 或更早版本升级,请参考数据迁移教程

常见问题

1. 配置文件权限

确保 docker-compose.yml 的权限正确:

bash
chmod 644 docker-compose.yml

2. 目录权限

确保挂载目录的权限正确:

bash
# Helper自己的数据目录
chmod -R 755 data
chmod -R 755 backups
# Sun-Panel的custom目录
chmod -R 755 /path/to/sunpanel/conf/custom  # 确保Sun-Panel的custom目录权限正确

3. 端口冲突

如果端口被占用,修改 docker-compose.yml 中的端口映射:

yaml
ports:
  - "33003:80"  # 将 33002 改为其他可用端口

4. Helper 功能不生效

检查 custom 目录是否正确挂载到 Sun-Panel 的 custom 目录。确保:

  • custom 目录路径正确指向 Sun-Panel 的 conf/custom 目录
  • Sun-Panel 可以访问此目录(权限正确)
  • 如果 Sun-Panel 的 custom 目录不存在,需要手动创建

5. 备份管理

查看备份与恢复了解如何管理备份和恢复数据。

下一步

基于 MIT 许可发布