首页 > 编程语言 >dockerfile 将自己的nodeapi项目结合指定版本node环境打包生成全新的mynodeapi镜像

dockerfile 将自己的nodeapi项目结合指定版本node环境打包生成全新的mynodeapi镜像

时间:2023-01-13 23:00:11浏览次数:58  
标签:node src nodeapi usr 镜像 docker dockerfile mynodeapi

用过宝塔或手动部署node-api项目就知道
有多少时候是因为生产环境上node的版本与我们提交的node版本过高或过低导致无法运行的
这几天玩docker随便把我原先的项目尝试打包镜像部署下
1.确保你的package.json中script有命令执行
我这里serve的nodemon是开发环境使用的更改持久化动态刷新
start的node在生产环境使用

{
  "name": "server",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "serve": "nodemon index.js",
    "start": "node index.js"
  },
  "author": "NanKe",
  "license": "ISC",
  "dependencies": {
    "axios": "^0.26.1",
    "bcryptjs": "^2.4.3",
    "dayjs": "^1.10.7",
    "express": "^4.17.3",
    "express-async-errors": "^3.1.1",
    "express-jwt": "^6.1.1",
    "jsonwebtoken": "^8.5.1",
    "log4js": "^6.4.4",
    "mongoose": "^6.2.9",
    "multer": "^1.4.4",
    "node-schedule": "^2.1.0",
    "nodemailer": "^6.7.3",
    "socket.io": "^4.4.0"
  }
}

2.上传你的node项目到服务器(我这边是openwrt软路由)
image
3.在当前node项目手动创建Dockerfile文件
内容如下:

#设置基础镜像
FROM node:16.13.0

#创建镜像目录,保存我们的代码
RUN mkdir -p /usr/src/mynodeapi

#设置工作目录(注意:这个文件路径是镜像内部的文件路径)
WORKDIR /usr/src/mynodeapi

#把当前目录下的所有文件拷贝到镜像的/usr/src/mynodeapi文件夹下
COPY . /usr/src/mynodeapi

#编译运行node项目,使用npm安装程序的所有依赖
RUN npm install

#暴露container的端口
EXPOSE 5000

#运行命令
CMD npm run start

4.当前Dockerfile下 打包成一个名为mynodeapi的镜像
docker build -t mynodeapi .
image
5.docker images看下
image
有啦 是真的大 940M!
6.根据镜像启动容器
docker run -d -p 5000:5000 mynodeapi
成功启动
image
记得打开openwrt的端口后重启容器
image

标签:node,src,nodeapi,usr,镜像,docker,dockerfile,mynodeapi
From: https://www.cnblogs.com/NanKe-Studying/p/17050941.html

相关文章