gpt4 book ai didi

node.js - 为什么 `docker-compose up` 会抛出错误,而 `docker run` 却可以流畅地工作

转载 作者:太空宇宙 更新时间:2023-11-03 22:40:00 27 4
gpt4 key购买 nike

我正在尝试使用 Docker 建立一个用于开发和生产 NodeJS 应用程序的环境。对于开发环境,我尝试使用 nodemon 运行应用程序(因为它会监视文件更改)。但是当我尝试使用 docker-compose up 运行它时,出现以下错误:

错误:对于 Web 无法启动服务 Web:oci 运行时错误:container_linux.go:247:启动容器进程导致“exec:\”nodemon\”:在 $PATH 中找不到可执行文件”

当我运行 docker run web-app (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", "."]
<小时/>

docker-compose.yml

version: '2'
services:
web:
build:
context: .
dockerfile: Dockerfile
command:
- nodemon .

最佳答案

所以,看到你的评论。我意识到问题是什么。 docker-compose.yml 中的 command 指令不应是列表。

将其写为字符串:

command: nodemon .

但是,由于 Dockerfile 中已经声明了相同的命令,因此根本没有必要将其放入 docker-compose.yml

<小时/>

编辑:可以将命令编写为列表,但需要分隔每个参数:

command:
- nodemon
- .

关于node.js - 为什么 `docker-compose up` 会抛出错误,而 `docker run` 却可以流畅地工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44022061/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com