当前位置: 首页 > 面试题库 >

泊坞窗:在$ 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"]

问题答案:

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

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

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



 类似资料:
  • 我有一个docker映像,它安装了,但是当我试图运行它时,我得到了一个错误: 如果我在交互模式下运行bash,则可用。 我做错了什么? 这是我的Dockerfile:

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

  • 问题内容: 我正在docker容器内的GCE上运行jenkins实例,并希望从此Jenkinsfile和Github执行多分支管道。我正在为此使用GCE詹金斯教程。这是我的 我总是得到一个错误: 为了使docker在jenkins中工作,我需要更改什么? 问题答案: 看起来像DiD(Docker中的Docker),最近的一期杂志指出这是有问题的。 请参阅“ 在您的CI或测试环境中使用Docker-

  • 我已经检查了垃圾箱,里面没有ping

  • 问题内容: 我想在使用Selenium WebDriver和Docker而不是虚拟机的同一台计算机上运行多个Internet Explorer版本。据我所知,Docker完全在Linux上运行,这将使Docker中的IE无法实现。我之所以问是因为我看到Docker在Microsoft Azure上运行。 问题答案: Docker当前不适用于基于Windows的应用程序。Azure上的Docker是

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