Docker Container Command 找不到 shell 脚本

标签 docker dockerfile

这是我的 Dockerfile:

FROM debian

MAINTAINER Andrew Ford<andrew.ford@gg.com>
RUN apt-get update
COPY entrypoint.sh /

ENTRYPOINT ["/entrypoint.sh"]

这是我的 entrypoint.sh(与 Dockerfile 相同的目录)
#!/bin/bash

echo Hello

然后我跑了:
docker build --no-cache=true -t test/dockerfile-sayhello .

当我跑的时候:
docker run test/dockerfile-sayhello

它返回:
C:\Program Files\Docker Toolbox\docker.exe: Error response from daemon: Container command '/entrypoint.sh' not found or does not exist..

我试过用谷歌搜索看看我是否犯了任何明显的错误,但到目前为止我还无法识别它。也许你们中的一些人可以提供帮助

编辑:还运行 chmod +x entrypoint.sh 来授予权限

最佳答案

我刚刚尝试使用以下 Dockerfile(添加 chmod )

FROM debian

MAINTAINER Andrew Ford<andrew.ford@gg.com>
RUN apt-get update
COPY entrypoint.sh /

RUN chmod 755 /entrypoint.sh

ENTRYPOINT ["/entrypoint.sh"]

它按预期工作。

它不像 issue 20789 :

I tried to transform a Dockerfile setup from phusion/baseimage to gliderslabs/alpine. Turns out that those shell scripts use bash -- of course! Simply change to sh, as bash is not present, resulting in the above error..



最新debian image应该包含 bash,因为它的默认值 CMD/bin/bash .

关于Docker Container Command 找不到 shell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38864037/

相关文章:

docker - Docker Compose 适合生产环境吗?

docker - `sage -pip install --user ffmpeg` 没有使 "` OSError : Error: ffmpeg does not appear to be installed. `"消息消失

docker - 使用官方 docker 镜像和 .monetdb 文件时,用户 'monetdb' 的凭据无效

java - Docker:尝试在容器内运行 java vert.x 应用程序。

java - 甲骨文java 8无法找到包

docker - docker 卷何时可用于 CMD 脚本?

bash - 如何完全像在Dockerfile中一样运行Docker cmds

docker - 在 Alpine Docker 容器 : "loadinternal: cannot find runtime/cgo" 中从源代码编译 Go 时出错

docker - xvfb-run 卡在容器中

linux - 使用 curl 优化 docker 镜像构建大小