docker compose xtify-music-web

配置文件解析

docker-compose.yml 文件定义了一个多容器应用,包含前端(frontend)和后端(backend)两个服务。以下是关键配置项的说明:

前端服务 (frontend)

  • 使用镜像 sherlockouo/xtify-music-web:latest
  • 容器名称设为 xtify-music-web
  • 自动重启策略为 unless-stopped(除非手动停止,否则自动重启)
  • 端口映射 2222:80 表示将宿主机的 2222 端口映射到容器的 80 端口
  • 环境变量 API_BASE_URL 指定后端 API 地址(通过容器名 backend 进行内部通信)
  • 依赖 backend 服务,确保后端先启动

后端服务 (backend)

  • 使用镜像 sherlockouo/xtify-music-server:latest
  • 容器名称设为 xtify-music-server
  • 自动重启策略为 unless-stopped
  • 端口映射 35530:35530 将宿主机的 35530 端口映射到容器的同名端口
  • 环境变量包括:
    • PORT=35530 指定服务监听端口
    • NODE_ENV=production 设置为生产环境
    • 注释部分预留了数据库连接配置(如需要可取消注释并填写实际值)

部署步骤

  1. 保存配置文件

    将内容保存为 docker-compose.yml 文件,确保缩进正确(使用空格而非制表符)。

  2. 启动服务

    在文件所在目录执行以下命令启动容器:

    bash 复制代码
    docker-compose up -d
  3. 验证服务

    • 访问前端:http://宿主机IP:2222
    • 检查后端API:http://宿主机IP:35530/api
  4. 管理命令

    • 停止服务:docker-compose down
    • 查看日志:docker-compose logs -f

注意事项

  • 若需添加数据库服务,可在配置中新增 database 服务并取消后端环境变量的注释。

  • 确保宿主机端口(222235530)未被占用,或根据需求修改映射端口。

    version: '3'

    services:
    frontend:
    image: sherlockouo/xtify-music-web:latest
    container_name: xtify-music-web
    restart: unless-stopped
    ports:
    - "2222:80" # 前端Web服务端口
    environment:
    - API_BASE_URL=http://backend:35530/api # 后端API地址(容器内通信)
    depends_on:
    - backend # 依赖于后端服务,确保后端先启动

    复制代码
    backend:
      image: sherlockouo/xtify-music-server:latest
      container_name: xtify-music-server
      restart: unless-stopped
      ports:
        - "35530:35530"  # 后端API服务端口
      environment:
        - PORT=35530  # 服务监听端口
        - NODE_ENV=production  # 生产环境模式
        # 可添加其他环境变量(如数据库连接信息)
        # - DB_HOST=database
        # - DB_USER=user
        # - DB_PASSWORD=pass

ip:2222访问