我有一个安装的docker镜像grunt,但是当我尝试运行它时,我收到一个错误:
Error response from daemon: Cannot start container foo_1: \
exec: "grunt serve": executable file not found in $PATH
Run Code Online (Sandbox Code Playgroud)
如果我以交互模式运行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"]
Run Code Online (Sandbox Code Playgroud)
sar*_*ink 261
当我粘贴我的错误消息时,这是google上的第一个结果,这是因为我的论点不正常.
容器名称必须在所有参数之后.
坏:
docker run <container_name> -v $(pwd):/src -it
Run Code Online (Sandbox Code Playgroud)
好:
docker run -v $(pwd):/src -it <container_name>
Run Code Online (Sandbox Code Playgroud)
Kev*_*ist 170
当您对命令使用exec格式(例如CMD ["grunt"],带双引号的JSON数组)时,它将在没有 shell的情况下执行.这意味着大多数环境变量都不会出现.
如果将命令指定为常规字符串(例如CMD grunt),CMD则将执行后面的字符串/bin/sh -c.
有关这方面的更多信息,请参见Dockerfile参考的CMD部分.
小智 21
我发现了同样的问题.我做了以下事情:
docker run -ti devops -v /tmp:/tmp /bin/bash
Run Code Online (Sandbox Code Playgroud)
当我改为
docker run -ti -v /tmp:/tmp devops /bin/bash
Run Code Online (Sandbox Code Playgroud)
它工作正常.
bey*_*eal 12
出于某种原因,除非我添加“bash”澄清器,否则我会收到该错误。即使在我的入口点文件顶部添加“#!/bin/bash”也无济于事。
ENTRYPOINT [ "bash", "entrypoint.sh" ]
Run Code Online (Sandbox Code Playgroud)
这样的错误有几种可能的原因.
在我的情况下,这是由于我下载后的可执行文件(docker-entrypoint.sh来自Ghost博客Dockerfile)缺少可执行文件模式.
解: chmod +x docker-entrypoint.sh
可以构建没有外壳的Docker容器(例如https://github.com/fluent/fluent-bit-docker-image/issues/19)。
在这种情况下,您可以复制一个静态编译的shell并执行它,例如
docker create --name temp-busybox busybox:1.31.0
docker cp temp-busybox:/bin/busybox busybox
docker cp busybox mycontainerid:/busybox
docker exec -it mycontainerid /bin/busybox sh
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
242182 次 |
| 最近记录: |