首页
/ Streama项目Docker-Compose部署指南

Streama项目Docker-Compose部署指南

2025-07-06 06:50:41作者:羿妍玫Ivan

概述

Streama是一个自托管媒体服务器应用,允许用户搭建个人流媒体平台。本文将详细介绍如何使用Docker-Compose部署Streama项目,包括MySQL数据库、Streama应用服务和Nginx反向代理的完整配置方案。

系统架构

该Docker-Compose配置构建了一个三服务架构:

  1. MySQL服务:作为Streama的后端数据库
  2. Streama应用服务:核心媒体服务器应用
  3. Nginx反向代理:提供HTTP访问入口和负载均衡

服务配置详解

MySQL服务配置

mysql:
  platform: linux/x86_64
  image: mysql:5.7
  restart: always
  container_name: mysql
  hostname: mysql
  networks:
    - net-backend
  expose:
    - 3306
  volumes:
    - db_data:/var/lib/mysql
  environment:
    MYSQL_ROOT_PASSWORD: streama_root_password
    MYSQL_USER: streama
    MYSQL_DATABASE: streama
    MYSQL_PASSWORD: streama_password

关键配置说明

  • 使用MySQL 5.7版本,确保兼容性
  • 配置了持久化存储卷db_data,防止数据丢失
  • 设置了root用户密码和专用streama用户
  • 仅暴露3306端口给内部网络

Streama应用服务配置

streama:
  image: streama
  build: .
  restart: always
  container_name: streama
  hostname: streama
  depends_on:
    - mysql
  networks:
    - net-backend
  expose:
    - 8080
  volumes:
    - $HOME/movies:/data/streama
    - app_data:/app/streama
  environment:
    ACTIVE_PROFILE: mysql
    MYSQL_HOST: mysql
    MYSQL_PORT: 3306
    MYSQL_DB: streama
    MYSQL_USER: streama
    MYSQL_PASSWORD: streama_password

关键配置说明

  • 从本地Dockerfile构建Streama镜像
  • 挂载主机电影目录到容器/data/streama路径
  • 配置了应用数据持久化卷app_data
  • 通过环境变量配置MySQL连接参数
  • 暴露8080端口供内部访问

Nginx反向代理配置

proxy-reverse:
  image: proxy-reverse
  build: nginx/.
  restart: always
  container_name: proxy-reverse
  hostname: proxy-reverse
  depends_on:
    - streama
  networks:
    - net-backend
  ports:
    - "80:80"
  volumes:
    - proxy_reverse_data:/etc/nginx
    - proxy_reverse_data_log:/var/log/nginx

关键配置说明

  • 从nginx目录下的Dockerfile构建镜像
  • 映射主机80端口到容器80端口
  • 配置了Nginx配置和日志的持久化存储
  • 依赖Streama服务,确保启动顺序

网络与存储配置

networks:
  net-backend:

volumes:
  db_data:
  app_data:
  proxy_reverse_data:
  proxy_reverse_data_log:

配置说明

  • 创建专用网络net-backend隔离服务间通信
  • 定义四个持久化卷,分别用于:
    • MySQL数据存储
    • Streama应用数据
    • Nginx配置
    • Nginx日志

部署建议

  1. 修改挂载路径:将$HOME/movies替换为实际的媒体文件存储路径
  2. 安全增强
    • 修改默认密码配置
    • 考虑添加SSL证书配置
  3. 性能优化
    • 根据主机资源限制容器内存和CPU使用
    • 考虑添加缓存配置

常见问题解决

  1. 服务启动顺序问题:确保MySQL完全启动后再启动Streama
  2. 权限问题:检查挂载目录的读写权限
  3. 端口冲突:确认主机80端口未被占用

总结

该Docker-Compose配置提供了一个完整的Streama媒体服务器部署方案,包含了数据库、应用服务和反向代理的完整配置。通过容器化部署,简化了环境配置和依赖管理,同时通过持久化存储确保了数据安全。用户可根据实际需求调整配置参数,如挂载路径、端口映射等,以适应不同的部署环境。