docker部署nodejs開發(fā)環(huán)境詳細步驟(基礎示例篇)
更新時間:2023年10月23日 10:46:08 作者:家用通馬桶高級工程師
這篇文章主要給大家介紹了docker部署nodejs開發(fā)環(huán)境詳細步驟,docker是一個開源的應用容器引擎,可以為我們提供安全、可移植、可重復的自動化部署的方式,需要的朋友可以參考下
一直想寫一個關于多容器開發(fā)環(huán)境,以后會逐步更新,今天先從簡單的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開發(fā)環(huán)境詳細步驟的文章就介紹到這了,更多相關docker部署nodejs開發(fā)環(huán)境內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
詳解Ubuntu16.04安裝Docker、nvidia-docker的教程
這篇文章主要介紹了詳解Ubuntu16.04安裝Docker、nvidia-docker的教程,需要的朋友可以參考下2019-10-10使用Docker run的選項以覆蓋Dockerfile中的設置詳解
今天小編就為大家分享一篇關于使用Docker run的選項以覆蓋Dockerfile中的設置詳解,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-10-10