docker部署nodejs开发环境详细步骤(基础示例篇)
更新时间:2023年10月23日 10:46:08 作者:家用通马桶高级工程师
这篇文章主要给大家介绍了docker部署nodejs开发环境详细步骤,docker是一个开源的应用容器引擎,可以为我们提供安全、可移植、可重复的自动化部署的方式,需要的朋友可以参考下
一直想写一个关于多容器开发环境,以后会逐步更新,今天先从简单的hello world开始吧
下面的例子来自于 https://nodejs.org/zh-cn/docs/guides/nodejs-docker-webapp/
一共4个文件,分别是
- dockerfile
- docker-compose.yml
- package.json
- server.js
# 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 3000 CMD [ "node", "server.js" ]
# package.json { "name": "docker_web_app", "version": "1.0.0", "description": "Node.js on Docker", "author": "First Last <first.last@example.com>", "main": "server.js", "scripts": { "start": "node server.js" }, "dependencies": { "express": "^4.16.1" } }
# server.js 'use strict'; const express = require('express'); // Constants const PORT = 3000; const HOST = '0.0.0.0'; // App const app = express(); app.get('/', (req, res) => { res.send('Hello World'); }); app.listen(PORT, HOST, () => { console.log(`Running on http://${HOST}:${PORT}`); });
# docker-compose.yml version: '3.0' services: node-web: build: ./ ports: - "3000:3000" volumes: - ./:/usr/src/app - /usr/src/app/node_modules command: npm start
注意哦!!! 第10行 volumes里必须要把container中的node_modules映射出来,否则会报错
internal/modules/cjs/loader.js:818
code: 'MODULE_NOT_FOUND',
requireStack: [ '/usr/src/app/server.js' ]
这是因为宿主机目录中没有node_modules而引起的莫名错误。。。
普通的目录结构 👇
docker-compose up
运行成功!😃,打开浏览器访问 localhost:3000
总结:
非常简单方便的docker容器化部署nodejs,过去自己下载自己配置,弄半天的情景不复存在!这是简单实用基础版本,拥抱docker吧!
到此这篇关于docker部署nodejs开发环境详细步骤的文章就介绍到这了,更多相关docker部署nodejs开发环境内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
您可能感兴趣的文章:
相关文章
Spring Boot应用通过Docker发布部署的流程分析
将Spring Boot项目部署到docker中有两种方法,手动部署和插件部署,本文通过实例代码介绍了idea创建spring boot项目的详细过程,感兴趣的朋友一起看看吧2021-09-09Docker如何给Springboot项目动态传参的实现方法
这篇文章主要介绍了Docker如何给Springboot项目动态传参的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-11-11
最新评论