Docker 快速部署 Node express 项目

前言

本文章讲解如何简单快速部署 node API 项目。可作为docker入门学习。

Node 项目基于 express+sequelize 框架。

数据库使用 mysql。

Docker 安装

Docker 官方下载地址:docs.docker.com/get-docker

检查 Docker 安装版本:$ docker --version

Dockerfile

Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。
Dockerfile 学习地址:www.runoob.com/docker/dock…

在项目根目录下编写 Dockerfile 文件:

7231624506430_.pic.jpg

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 学习地址:www.runoob.com/docker/dock…

在根目录下编写 docker-compose.yml 文件:

7241624516284_.pic.jpg

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 成功:

image.png

服务器部署运行

在服务器 git pull 该项目

执行 $ docker-compose up -d

使用 $ docker images $ docker ps 检查是否构建和启动成功

调试接口 http://服务器ip:3000/test/demo

致谢

感谢技术大佬 Benny 的帮助,让我更加理解docker的使用。

转载声明

请注明作者,注明原文链接,有疑问致邮 kingwyh1993@163.com

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享