Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何使用docker compose设置节点_Node.js_Docker_Docker Compose_Docker Volume - Fatal编程技术网

Node.js 如何使用docker compose设置节点

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

我正在学习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 --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
可用