【问题标题】:how to setup node with docker-compose如何使用 docker-compose 设置节点
【发布时间】:2021-02-16 17:37:38
【问题描述】:

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

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

【问题讨论】:

    标签: node.js docker docker-compose docker-volume


    【解决方案1】:

    Nodemon 最好只在您的开发环境中使用。您可以配置您的 dockercontainer 在发生错误时重新启动,从而放弃容器内对 Nodemon 的需要。

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

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

    【讨论】:

      猜你喜欢
      • 2021-08-22
      • 1970-01-01
      • 2020-05-16
      • 1970-01-01
      • 2020-01-30
      • 2018-02-25
      • 2017-08-20
      • 2017-11-19
      • 2018-08-01
      相关资源
      最近更新 更多