Docker 快速部署 Node express 项目
前言
本文章讲解如何简单快速部署 node API 项目。可作为docker入门学习。
Node 项目基于 express+sequelize 框架。
数据库使用 mysql。
Docker 安装
Docker 官方下载地址:docs.docker.com/get-docker
检查 Docker 安装版本:$ docker --version
Dockerfile
Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。
Dockerfile 学习地址:http://www.runoob.com/docker/dock…
在项目根目录下编写 Dockerfile 文件:
FROM node:12.1 :基于 node:12.1 的定制镜像
LABEL maintainer="kingwyh1993@163.com" :镜像作者
COPY . /home/funnyService :制文件到容器里指定路径
WORKDIR /home/funnyService :指定工作目录为,RUN/CMD 在工作目录运行
ENV NODE_ENV=production :指定环境变量 NODE_ENV 为 production
RUN npm install yarn -g :安装 yarn
RUN yarn install :初始化项目
EXPOSE 3000 :声明端口
CMD [ "node", "src/app.js" ] :运行 node 项目 `$ node src/app.js`
注:CMD 在docker run 时运行。RUN 是在 docker build。
复制代码
docker-compose
Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。
docker-compose 学习地址:http://www.runoob.com/docker/dock…
在根目录下编写 docker-compose.yml 文件:
container_name: 'funny-app' :指定容器名称 funny-app
build: . :指定构建镜像上下文路径,依据 ./Dockerfile 构建镜像
image: 'funny-node:2.0' :指定容器运行的镜像,名称设置为 funny-node:2.0
ports: :映射端口的标签,格式为 '宿主机端口:容器端口'
- '3000:3000' :这里 node 项目监听3000端口,映射到宿主机3000端口
复制代码
本地调试
项目根目录下执行 $ docker-compose up -d
查看构建的镜像 $ docker images
检查有上述 node、funny-node 镜像则构建成功
查看运行的容器 $ docker ps
检查有 funny-app 容器则启动成功
调试接口 http://127.0.0.1:3000/test/demo
成功:
服务器部署运行
在服务器 git pull
该项目
执行 $ docker-compose up -d
使用 $ docker images
$ docker ps
检查是否构建和启动成功
链接:https://juejin.cn/post/6977256058725072932