我有一个安装grunt
的docker镜像,但当我尝试运行它时,我得到一个错误:
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"]
发布于 2016-04-12 15:39:08
我发现了同样的问题。我做了以下工作:
docker run -ti devops -v /tmp:/tmp /bin/bash
当我将其更改为
docker run -ti -v /tmp:/tmp devops /bin/bash
它工作得很好。
发布于 2017-09-24 09:46:33
出现这样的错误有几种可能的原因。
在我的例子中,这是由于可执行文件(来自Ghost blog Dockerfile的docker-entrypoint.sh
)在我下载之后缺少可执行文件模式。
解决方案:chmod +x docker-entrypoint.sh
发布于 2018-10-31 03:38:30
由于某种原因,除非我添加了"bash“澄清符,否则我会得到这个错误。甚至在我的入口点文件的顶部添加"#!/bin/bash“也没有帮助。
ENTRYPOINT [ "bash", "entrypoint.sh" ]
https://stackoverflow.com/questions/27158840
复制相似问题