docker部署nodejs開發(fā)環(huán)境詳細(xì)步驟(基礎(chǔ)示例篇)
一直想寫一個(gè)關(guān)于多容器開發(fā)環(huán)境,以后會逐步更新,今天先從簡單的hello world開始吧
下面的例子來自于 https://nodejs.org/zh-cn/docs/guides/nodejs-docker-webapp/
一共4個(gè)文件,分別是
- 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映射出來,否則會報(bào)錯(cuò)
internal/modules/cjs/loader.js:818
code: 'MODULE_NOT_FOUND',
requireStack: [ '/usr/src/app/server.js' ]
這是因?yàn)樗拗鳈C(jī)目錄中沒有node_modules而引起的莫名錯(cuò)誤。。。
普通的目錄結(jié)構(gòu) ??
docker-compose up
運(yùn)行成功!??,打開瀏覽器訪問 localhost:3000
總結(jié):
非常簡單方便的docker容器化部署nodejs,過去自己下載自己配置,弄半天的情景不復(fù)存在!這是簡單實(shí)用基礎(chǔ)版本,擁抱docker吧!
到此這篇關(guān)于docker部署nodejs開發(fā)環(huán)境詳細(xì)步驟的文章就介紹到這了,更多相關(guān)docker部署nodejs開發(fā)環(huán)境內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解Ubuntu16.04安裝Docker、nvidia-docker的教程
這篇文章主要介紹了詳解Ubuntu16.04安裝Docker、nvidia-docker的教程,需要的朋友可以參考下2019-10-10docker網(wǎng)卡的IP地址修改方法總結(jié)
這篇文章主要給大家總結(jié)介紹了關(guān)于docker網(wǎng)卡的IP地址修改方法,文中通過實(shí)例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用docker具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2023-06-06使用Docker run的選項(xiàng)以覆蓋Dockerfile中的設(shè)置詳解
今天小編就為大家分享一篇關(guān)于使用Docker run的選項(xiàng)以覆蓋Dockerfile中的設(shè)置詳解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2018-10-10docker打包前端項(xiàng)目的實(shí)現(xiàn)示例
本文介紹了如何將前端項(xiàng)目打包到Docker容器中,包括編寫Dockerfile文件、創(chuàng)建鏡像和容器以及解決部署過程中遇到的問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-09-09Docker網(wǎng)絡(luò)之部署redis集群方式
文章介紹了如何部署和測試Redis集群,包括創(chuàng)建配置文件、啟動容器、查看集群信息以及模擬節(jié)點(diǎn)故障進(jìn)行測試2025-01-01使用Docker部署openGauss國產(chǎn)數(shù)據(jù)庫的操作方法
openGauss是一款支持SQL2003標(biāo)準(zhǔn)語法,支持主備部署的高可用關(guān)系型數(shù)據(jù)庫,這篇文章主要介紹了使用Docker部署openGauss國產(chǎn)數(shù)據(jù)庫,需要的朋友可以參考下2022-10-10