如何使用docker-compose设置节点



我正在学习docker和nodejs,我想用这两个工具开始一个项目。

我想要实现的是在docker的构建阶段安装节点依赖,然后通过docker-compose卷将node_modules文件夹复制到我的主机。

这是我的Dockerfile:
FROM node:latest
COPY . /myproject/back/
WORKDIR /myproject/back/

RUN npm install --save-dev nodemon
RUN npm install --save 
express 
multer
CMD npm run dev

这是我的docker- composition。yml:

version: "3.3"

services:
back:
build: ./back
expose:
- 3000
ports:
- "3000:3000"
volumes:
- ./back:/myproject/back

当我运行docker-compose build时,它正确构建,但当我运行docker-compose up时,我得到这个错误:

back_1  | > back@1.0.0 dev
back_1  | > nodemon main.js
back_1  |
back_1  | sh: 1: nodemon: not found
back_1  | npm ERR! code 127

我错过了什么?这是推荐的方法吗?

理想情况下,应该只在您的开发环境中使用Nodemon。你可以配置你的dockercontainer在错误发生时重新启动,放弃容器内Nodemon的需要。

现在,如果你真的想让Nodemon在docker中运行你的node应用程序,那么你需要首先全局安装Nodemon:

用这个RUN npm install -g nodemon替换这个RUN npm install --save-dev nodemon,这将使命令nodemon在您的容器中可用。

最新更新