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