Docker版YesPlayMusic
简介
YesPlayMusic是一款基于网易云音乐API开发的开源音乐播放器,具有查看歌曲、歌单、播放列表、搜索歌曲等功能。本文将介绍如何使用Docker部署YesPlayMusic。
Docker简介
Docker是一个开源的应用容器引擎,可以将应用及其依赖打包成一个容器,然后发布到任何Linux或Windows服务器上。使用Docker可以快速部署应用、解决跨平台问题,并提供隔离化、可伸缩性和高可用性。
准备工作
在开始部署之前,您需要安装Docker和Docker Compose。请根据您的操作系统,参考官方文档安装Docker:[
docker --version
docker-compose --version
创建Docker镜像
首先,我们需要创建一个Docker镜像来运行YesPlayMusic。在项目根目录下创建一个名为Dockerfile
的文件,并在其中添加以下内容:
FROM node:14-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
CMD ["npm", "run", "start:prod"]
上述Dockerfile的主要内容是从Node.js的官方镜像中拉取一个基于Alpine Linux的最小化镜像,并将当前目录下的文件拷贝到镜像中。然后,执行npm ci
命令安装项目的依赖,并使用npm run start:prod
命令启动YesPlayMusic。
使用Docker Compose
接下来,我们使用Docker Compose来管理容器的启动和停止。在项目根目录下创建一个名为docker-compose.yml
的文件,并添加以下内容:
version: "3"
services:
yesplaymusic:
build:
context: .
ports:
- "3000:3000"
environment:
- NODE_ENV=production
volumes:
- ./data:/app/data
上述docker-compose.yml
文件定义了一个名为yesplaymusic
的服务,使用上一步创建的Docker镜像构建容器。ports
指定了容器和主机之间的端口映射关系,这里将容器的3000端口映射到主机的3000端口。environment
指定了容器的环境变量,这里设置了NODE_ENV
为production
。volumes
指定了容器和主机之间的目录映射关系,这里将容器的/app/data
目录映射到主机的./data
目录。
启动容器
保存并关闭docker-compose.yml
文件后,执行以下命令启动容器:
docker-compose up -d
使用-d
参数可以在后台运行容器。
访问YesPlayMusic
容器启动后,您可以通过浏览器访问YesPlayMusic。在浏览器中输入http://localhost:3000
,即可进入YesPlayMusic的首页。
甘特图
下面是部署YesPlayMusic的甘特图:
gantt
dateFormat YYYY-MM-DD
title 部署YesPlayMusic
section 准备工作
安装Docker和Docker Compose :done, 2022-01-01, 1d
section 创建Docker镜像
创建Dockerfile文件 :done, 2022-01-02, 1d
section 使用Docker Compose
创建docker-compose.yml文件 :done, 2022-01-03, 1d
section 启动容器
启动YesPlayMusic容器 :done, 2022-01-04, 1d
section 访问YesPlayMusic
在浏览器中访问YesPlayMusic :done, 2022-01-05, 1d
序列图
下面是访问YesPlayMusic的序列图:
sequenceDiagram
participant 用户
participant