配置文件解析
该 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
设置为生产环境- 注释部分预留了数据库连接配置(如需要可取消注释并填写实际值)
部署步骤
-
保存配置文件
将内容保存为
docker-compose.yml
文件,确保缩进正确(使用空格而非制表符)。 -
启动服务
在文件所在目录执行以下命令启动容器:
bashdocker-compose up -d
-
验证服务
- 访问前端:
http://宿主机IP:2222
- 检查后端API:
http://宿主机IP:35530/api
- 访问前端:
-
管理命令
- 停止服务:
docker-compose down
- 查看日志:
docker-compose logs -f
- 停止服务:
注意事项
-
若需添加数据库服务,可在配置中新增
database
服务并取消后端环境变量的注释。 -
确保宿主机端口(
2222
和35530
)未被占用,或根据需求修改映射端口。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访问