当前位置: 首页 > 知识库问答 >
问题:

docker:在$PATH中找不到可执行文件

盖嘉庆
2023-03-14

我有一个docker映像,它安装了grunt,但是当我试图运行它时,我得到了一个错误:

Error response from daemon: Cannot start container foo_1: \
    exec: "grunt serve": executable file not found in $PATH

如果我在交互模式下运行bash,则grunt可用。

我做错了什么?

这是我的Dockerfile:

# https://registry.hub.docker.com/u/dockerfile/nodejs/ (builds on ubuntu:14.04)
FROM dockerfile/nodejs

MAINTAINER My Name, me@email.com

ENV HOME /home/web
WORKDIR /home/web/site

RUN useradd web -d /home/web -s /bin/bash -m

RUN npm install -g grunt-cli
RUN npm install -g bower

RUN chown -R web:web /home/web
USER web

RUN git clone https://github.com/repo/site /home/web/site

RUN npm install
RUN bower install --config.interactive=false --allow-root

ENV NODE_ENV development

# Port 9000 for server
# Port 35729 for livereload
EXPOSE 9000 35729
CMD ["grunt"]

共有3个答案

段干安和
2023-03-14

我发现了同样的问题。我做了以下几件事:

docker run -ti devops -v /tmp:/tmp /bin/bash

当我把它改成

docker run -ti -v /tmp:/tmp devops /bin/bash

它很好用。

高明辉
2023-03-14

当您对命令使用exec格式时(例如,CMD[“grunt”],一个带双引号的JSON数组),它将在没有外壳的情况下执行。这意味着大多数环境变量将不存在。

如果将命令指定为常规字符串(例如CMD grunt),则CMD之后的字符串将使用/bin/sh-c执行。

有关这方面的更多信息,请参阅Dockerfile参考的CMD部分。

谢运良
2023-03-14

这是我在谷歌上粘贴错误消息时的第一个结果,这是因为我的参数出现了问题。

容器名称必须位于所有参数之后。

坏的:

docker run <container_name> -v $(pwd):/src -it

好的:

docker run -v $(pwd):/src -it <container_name>
 类似资料:
  • 我已经检查了垃圾箱,里面没有ping

  • 我正在尝试为elasticsearch 1.7运行docker容器。下面是我的Dockerfile: Docker build运行良好。但是docker run命令给了我这个错误:来自守护进程的错误响应:oci运行时错误:container\u linux。go:265:启动容器进程导致“exec:\“elasticsearch\”:在$PATH中找不到可执行文件” 我使用的Mac和Docker版

  • 我有一个运行在Docker容器中的uwsgi服务,我想用它来服务django应用程序。当我在本地运行uwsgi服务时,一切正常,但是从docker容器中我得到消息和,django应用程序显示内部服务器错误。这是我的uwsgi.ini文件。在docker容器中,我使用类似于

  • 问题内容: 我有一个安装的docker映像,但是当我尝试运行它时,出现错误: 如果我以交互模式运行bash,则可用。 我究竟做错了什么? 这是我的Dockerfile: 问题答案: 当您将exec格式用于命令(例如,带双引号的JSON数组)时,将在 没有 外壳的 情况下 执行该命令。这意味着大多数环境变量将不存在。 如果您将命令指定为常规字符串(例如),则之后的字符串将使用来执行。 有关更多信息,

  • 我完全按照这个例子,[http://kubernetes.io/docs/hellonode/,] 在我运行[kubectl run hello-node--image=gcr.io/project_id/hello-node:v1--port=8080 deployment“hello-node”created]之后。pod运行不正常,我得到了CrashLoopBackOff状态,我没有部署执行

  • 我在学docker。我尝试在docker,com上运行一个示例dockerfile。但我有一个问题是“来自守护进程的错误响应:OCI运行时创建失败:container\u linux.go:345:启动容器进程导致”exec:\“flask\”:在$PATH中找不到可执行文件“:未知”。 非常感谢。