Docker搭建部署Node项目的方法步骤,Node服务部署搭建方法( 二 )


docker-compose build [options] [SERVICE...] #构建(重新构建)项目中的服务容器docker-compose up -d # 运行 compose 项目,后台执行docker-compose up 是个非常强大的命令,它将尝试自动完成包括构建镜像,(重新)创建服务,启动服务,并关联服务相关容器的一系列操作 。链接的服务都将会被自动启动,除非已经处于运行状态 。可以说,大部分时候都可以直接通过该命令来启动一个项目 。
 
构建nginx-node-postgres项目有了上面的基础,接着就可以构建我们自己的项目了,首先是node服务的dockerfile,主要做了如下步骤

  • 创建容器工作目录
  • 复制相关配置文件到容器
  • 在容器安装npm包
  • 运行pm2启动容器
FROM node:14.5.0-alpine3.12# 工作目录WORKDIR /usr/src/app# 复制配置文件COPY package*.json ./COPY process.yml ./RUN npm set registry https://registry.npm.taobao.org/ \&& npm install pm2 -g \&& npm install# 使用pm2管理CMD ["pm2-runtime", "process.yml", "--only", "app", "--env", "production"]EXPOSE 3010接着配置 docker-compose.yml
  • db配置的是数据库postgres,其中数据卷 volumes 映射了数据库目录和初始化脚步
  • app配置的是node服务,其中的build是映射上面dockerfile所在的目录;depends_on表示依赖的容器、启动先后,这里先启动db再启动node;links表示将db的名称映射到app容器
  • nginx容器depend_on于app容器,同时配置转发node的服务
version: '3'services:db:image: postgres:12.3-alpinecontainer_name: postgresenvironment:- TZ=Asia/Shanghai- POSTGRES_PASSWORD=xxxxvolumes:- ./postgres/data:/var/lib/postgresql/data- ./postgres/init:/docker-entrypoint-initdb.dports:- 5432:5432restart: always #始终重启,生产环境中推荐配置为 alwaysexpose:- 5432app:image: koa-pgcontainer_name: koavolumes:- ./dist:/usr/src/app/dist- ./logs:/usr/src/app/logsbuild: ./environment:- TZ=Asia/Shanghairestart: alwaysdepends_on:- dblinks:- dbexpose:- 3010nginx:image: nginx:1.19.0-alpinecontainer_name: nginxvolumes:- ./nginx.conf:/etc/nginx/nginx.confports:- 8080:80environment:- TZ=Asia/Shanghairestart: alwaysdepends_on:- applinks: # host名代替ip配置nginx的转发- appexpose:- 8080配置完我们的项目之后,接着就是运行起来
docker-compose up在我们的本地开发机是如此,部署到服务器也是如此,你想要部署几台服务器就部署几台,只要装了docker,都是一句命令行就能解决的事情 。
要启动几个容器,修改下docker-compose.yml的配置,再次docker-compose up,so easy !
【Docker搭建部署Node项目的方法步骤,Node服务部署搭建方法】到此这篇关于Docker搭建部署Node项目的方法步骤的文章就介绍到这了,更多相关Docker搭建部署Node 内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
Docker搭建部署Node项目的方法步骤,Node服务部署搭建方法相关内容 。

推荐阅读