node项目docker化

Dockerfile:

FROM node:12

# Create app directory
WORKDIR /usr/src/app

# Install app dependencies
# A wildcard is used to ensure both package.json AND package-lock.json are copied
# where available (npm@5+)
COPY package*.json ./

RUN npm install
# If you are building your code for production
# RUN npm ci --only=production

# Bundle app source
COPY . .

EXPOSE 81
CMD [ "npm", "run", "dockerStart" ]

.dockerignore:

node_modules
npm-debug.log

package.json:

{
  "name": "m-node",
  "version": "1.0.0",
  "description": "",
  "main": "app.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "node app.js",
    "build": "node app",
    "server": "set PORT=81 && nodemon --inspect app",
    "dockerStart": "PORT=81 node app"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "axios": "^0.21.1",
    "body-parser": "^1.19.0",
    "compression": "^1.7.4",
    "connect-history-api-fallback": "^1.6.0",
    "cors": "^2.8.5",
    "express": "^4.17.1",
    "html-to-md": "^0.5.0",
    "http-proxy-middleware": "^2.0.0",
    "mockjs": "^1.1.0",
    "moment": "^2.29.1",
    "multer": "^1.4.2",
    "node-html-markdown": "^1.1.1",
    "nodemailer": "^6.6.3",
    "sqlite3": "^5.0.2",
    "uuid": "^8.3.2"
  }
}

生成镜像:

docker build -t m-app .

运行镜像文件:

docker run -it --rm --name my-running-app m-app

 

可以容器里通过命令访问测试一下:

curl -i localhost:81

通过命令暴露对外的端口即可正常访问:

docker run -p 81:81 -it --rm --name my-running-app m-app

 

在后台运行容器(-d):

docker run -p 81:81 -d -it --rm --name my-running-app m-app

 postman测试接口:

创建镜像时加上用户名,可以把镜像上传的docker hub上:

docker build -t xutongbao/m-node-edu .

 

 

 

通过Docker Desktop启动容器,并暴露对外的端口号:

 

 

 

posted @ 2021-09-18 12:00  徐同保  阅读(0)  评论(0编辑  收藏  举报  来源