Node.js 如何使用docker compose设置节点
我正在学习docker和nodejs,我想用这两种工具开始一个项目 我试图实现的是在docker的构建阶段安装节点依赖项,然后通过docker compose volumes将node_modules文件夹复制到主机 这是我的Dockerfile:Node.js 如何使用docker compose设置节点,node.js,docker,docker-compose,docker-volume,Node.js,Docker,Docker Compose,Docker Volume,我正在学习docker和nodejs,我想用这两种工具开始一个项目 我试图实现的是在docker的构建阶段安装节点依赖项,然后通过docker compose volumes将node_modules文件夹复制到主机 这是我的Dockerfile: FROM node:latest COPY . /myproject/back/ WORKDIR /myproject/back/ RUN npm install --save-dev nodemon RUN npm install --sa
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-compose.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中运行您的节点应用程序,那么您需要首先全局安装Nodemon: 将此
运行npm安装--save dev nodemon
替换为运行npm安装-g nodemon
,这将使容器中的命令nodemon
可用