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_ENVproductionvolumes指定了容器和主机之间的目录映射关系,这里将容器的/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