我正在努力建立一个发展环境&使用Docker生成NodeJS应用程序。对于开发环境,我尝试使用nodemon运行应用程序(因为这会监视文件更改)。但是当我尝试使用docker-compose up
运行它时,我收到以下错误:
错误:for web无法启动服务web:oci运行时错误:container_linux.go:247:启动容器进程导致“exec:\”nodemon \“:$ PATH中找不到可执行文件”
当我运行docker run web-app
时(使用docker build -t web-app .
生成网络应用图片我完全没有问题。我想知道这种不同的行为是如何发生的,以及如何解决它。我把我得到的文件放在了解问题的基础上。
Dockerfile
FROM node:latest
# Install nodemon globally
RUN npm i nodemon -g
# Add local directory to /node/web-app
ADD . /node/web-app
# Switch to /node/web-app
WORKDIR /node/web-app
# Install NPM dependencies
RUN npm install
# Run nodemon
CMD ["nodemon", "."]
搬运工-compose.yml
version: '2'
services:
web:
build:
context: .
dockerfile: Dockerfile
command:
- nodemon .
答案 0 :(得分:-1)
所以,看到你的评论。我意识到问题是什么。 docker-compose.yml中的command: nodemon .
指令不应该是列表。
将其写为字符串:
command:
- nodemon
- .
但是,由于在Dockerfile中已经声明了相同的命令,因此根本不需要将它放在docker-compose.yml中
编辑:可以将命令编写为列表,但是您需要查看每个参数:
var groupedData = [];
_(typeData).groupBy('item').forEach(function(value, key) {
var obj = {};
obj.count = value.length;
obj.type = value[0].type;
obj.details = value[0].details;
obj.description = key;
groupedData.push(obj);
});