首页
/ 使用Docker部署ClassicOldSong/Apollo项目的完整指南

使用Docker部署ClassicOldSong/Apollo项目的完整指南

2025-07-08 06:48:48作者:钟日瑜

项目概述

ClassicOldSong/Apollo项目提供了一个基于Docker的部署方案,让用户能够轻松地在容器环境中运行最新版本的Sunshine服务。Sunshine是一个开源的游戏流媒体服务,允许用户通过网络将游戏从主机设备流式传输到客户端设备。

版本注意事项

从v0.18.0版本开始,项目的Docker镜像标签命名规则发生了变化:

  • 不再支持latestmastervX.X.X等简单标签
  • 必须使用组合标签格式<SUNSHINE_VERSION>-<SUNSHINE_OS>

构建自定义容器

项目提供了基础镜像,方便用户在自己的Docker项目中集成最新版Sunshine。以下是构建自定义容器的示例Dockerfile:

ARG SUNSHINE_VERSION=latest
ARG SUNSHINE_OS=ubuntu-22.04
FROM lizardbyte/sunshine:${SUNSHINE_VERSION}-${SUNSHINE_OS}

# 安装Steam、Wayland等必要组件
RUN apt-get update && apt-get install -y steam wayland

# 设置容器启动命令
ENTRYPOINT ["steam", "&&", "sunshine"]

版本参数说明

SUNSHINE_VERSION支持以下格式:

  • 版本标签:latestmastervX.X.X
  • 具体的提交哈希值

SUNSHINE_OS支持以下基础镜像:

  • archlinux
  • debian-bookworm
  • ubuntu-22.04
  • ubuntu-24.04

部署方案

1. 使用docker run命令部署

docker run -d \
  --device /dev/dri/ \
  --name=apollo_sunshine \
  --restart=unless-stopped \
  --ipc=host \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Asia/Shanghai \
  -v /path/to/config:/config \
  -p 47984-47990:47984-47990/tcp \
  -p 48010:48010 \
  -p 47998-48000:47998-48000/udp \
  lizardbyte/sunshine:latest-ubuntu-22.04

2. 使用docker-compose部署

创建docker-compose.yml文件:

version: '3'
services:
  sunshine:
    image: lizardbyte/sunshine:latest-ubuntu-22.04
    container_name: apollo_sunshine
    restart: unless-stopped
    devices:
      - /dev/dri:/dev/dri
    volumes:
      - /path/to/config:/config
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Asia/Shanghai
    ipc: host
    ports:
      - "47984-47990:47984-47990/tcp"
      - "48010:48010"
      - "47998-48000:47998-48000/udp"

3. 使用podman部署

podman run -d \
  --device /dev/dri/ \
  --name=apollo_sunshine \
  --restart=unless-stopped \
  --userns=keep-id \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Asia/Shanghai \
  -v /path/to/config:/config \
  -p 47984-47990:47984-47990/tcp \
  -p 48010:48010 \
  -p 47998-48000:47998-48000/udp \
  lizardbyte/sunshine:latest-ubuntu-22.04

关键配置参数

参数 说明 示例值 是否必需
-p 47990:47990 Web UI访问端口 47990
-v /path:/config 配置文件挂载路径 /home/user/sunshine
-e PUID=1000 用户ID 1000
-e PGID=1000 用户组ID 1000
-e TZ=Asia/Shanghai 时区设置 Asia/Shanghai

用户权限管理

为了避免容器与宿主机之间的文件权限问题,建议设置正确的PUID和PGID。可以通过以下命令查看当前用户的ID信息:

id $USER

输出示例:

uid=1000(user) gid=1000(user) groups=1000(user)

架构支持情况

操作系统 x86_64支持 ARM64支持
Arch Linux
Debian Bookworm
Ubuntu 22.04
Ubuntu 24.04

最佳实践建议

  1. 数据持久化:务必将/config目录挂载到宿主机,防止配置丢失
  2. 权限管理:在Linux系统上,确保挂载目录的权限与容器内用户一致
  3. 资源隔离:考虑使用--cpus--memory限制容器资源使用
  4. 日志监控:使用docker logs或配置日志驱动来监控容器运行状态
  5. 安全更新:定期检查并更新到最新版本的Sunshine镜像

通过以上配置,您可以在Docker环境中稳定运行ClassicOldSong/Apollo项目,享受Sunshine带来的游戏流媒体服务。