【发布时间】:2018-12-25 05:45:08
【问题描述】:
我已经对 node.js 应用程序进行了 docker 化,并创建了一个 docker-compose 文件来与 mongo 一起运行它。我正在使用 docker 进行开发,因此我需要 nodemon。
这是我的 Dockerfile:
FROM node:carbon-alpine
RUN mkdir -p usr/src/app
WORKDIR /usr/src/app
RUN npm install -g nodemon
COPY package*.json /usr/src/app
RUN yarn install
COPY . /usr/src/app
EXPOSE 3000
CMD [ "yarn", "start-local" ]
这里是 docker-compose
version: "3"
services:
app:
container_name: app
restart: always
build: .
volumes:
- .:/usr/src/app
environment:
- MONGO_URI=mongodb://mongo:27017/test
ports:
- "3000:3000"
depends_on:
- mongo
networks:
app_net:
mongo:
container_name: app-mongo
image: mongo:3.6.6-jessie
volumes:
- ./data:/data/db
networks:
app_net:
aliases:
- mongo
networks:
app_net:
当我运行docker-compose up 时,我收到错误/bin/sh: nodemon: not found。当我在没有compose 的情况下运行单个容器时,一切正常。 docker-compose definition 有什么问题?
【问题讨论】:
-
yarn start-local将在你的依赖项中查找 nodemon,确保它在你的 package.json 中,在依赖项或 devDependencies 下。 -
@Selfish 因为是全局安装的,所以不依赖。为什么在没有 compose 的情况下运行容器时我没有收到此错误?
标签: node.js docker docker-compose