docker基础(四)-制作镜像部署node后端项目

一,创建koa项目

npm init -y
npm install --save koa

安装相关的koa依赖

 npm install koa koa-router koa-body @koa/cors koa-json -S
npm install koa-combine-routers -S

1,新建api文件夹,里面写业务接口代码a.js

function first(ctx) {
  ctx.body = {
    message: "a业务的第一个接口"
  };
}
function second(ctx) {
  ctx.body = {
    message: "a业务的第二个接口"
  };
}
module.exports = {
  first,
  second
};

2,新建routes文件夹,里面新建两个文件

aRouter.js分发a业务的路由

const Router = require("koa-router");
const ayewu = require("../api/a");

const router = new Router();
router.get("/firstGet", ayewu.first);
router.get("/secondGet", ayewu.second);

module.exports = router;

routes.js整合路由

const combineRoutes = require("koa-combine-routers");
const aroutes = require("./aRouter");
module.exports = combineRoutes(aroutes);

3,index.js作为项目入口

const koa = require("koa");
const app = new koa();
const router = require("./routes/routes");

app.use(router());
app.listen(3001);

4,根目录运行node ./index.js

docker基础(四)-制作镜像部署node后端项目_第1张图片

5,修改package.json

  "scripts": {
    "start": "node index.js"
  },

二,拉取node镜像

docker pull node

docker基础(四)-制作镜像部署node后端项目_第2张图片

三,编写 Dockerfile 将 koa应用 Docker 化

#使用14.15.0的node版本作为运行软件
FROM node:14.15.0
#将此目录作为工作目录
WORKDIR /usr/src/app
#复制本目录下的package文件(源文件)到工作目录(目标目录)
COPY package*.json ./
#在工作目录执行npm install 
RUN npm install
#将本本录下所有文件复制到目标目录
COPY . .
#EXPOSE 指令是声明运行时容器提供服务端口,这只是一个声明,在运行时并不会因为这个声明应用就会开启这个端口的服务。
EXPOSE 3001
#命令行执行npm run start
CMD [ "npm", "start" ]

构建镜像的时候 node_modules 的依赖直接通过 RUN npm install 来安装,项目中创建一个 .dockerignore文件来忽略一些直接跳过的文件:

node_modules
npm-debug.log

然后运行构建命令

docker build -t nodewebserver .

该命令将koa项目镜像化。
docker基础(四)-制作镜像部署node后端项目_第3张图片

四,启动 NodeServer 容器

基于刚刚构建的 NodeWebServer 镜像 启动一个名为 NodeServer 的容器来提供接口服务3001端口,并映射宿主的5000端口:

docker run -p 5000:3001 -d --name nodeserver nodewebserver

docker基础(四)-制作镜像部署node后端项目_第4张图片
于是浏览器访问接口:
docker基础(四)-制作镜像部署node后端项目_第5张图片

你可能感兴趣的:(docker,docker,node.js,npm)