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启动容器,并暴露对外的端口号:
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步