“ docker run --rm hello”遇到“失败:没有这样的文件或目录”错误

时间:2019-07-19 19:22:45

标签: docker docker-compose dockerfile

我是docker的新手,并按照https://docs.docker.com/develop/develop-images/baseimages/上的说明创建docker映像并尝试运行:

我的docker文件如下:

     FROM scratch
     ADD hello.sh /
     CMD ["/hello.sh"]

hello.sh文件如下。我已将dos2unix应用于hello.sh以确保正确的编码:

    #!/bin/sh
    echo "this is a test"

我按照文档中的说明运行以下命令来构建映像:

    docker build --tag hello .

然后,当我运行docker run --rm hello时,出现以下错误:

    [FATAL tini (8)] exec /hello.sh failed: No such file or directory

已在线搜索并尝试了各种帖子的解决方案。但是他们都不起作用。关于我做错了什么的任何见解?

相关的无用线程: 1. https://forums.docker.com/t/standard-init-linux-go-175-exec-user-process-caused-no-such-file/20025/4

1 个答案:

答案 0 :(得分:1)

从“临时”构建映像意味着您得到的容器只是一个空文件系统。尤其是对Docker来说是新手,您应该从一个像'alpine'的小映像开始,而不是从头开始,然后使用sh运行脚本。

如果您是从头开始构建的,则需要编译自己的二进制文件,然后将其添加为图像Install Bash on scratch Docker image的ENTRYPOINT或CMD。

关于从头开始构建https://docs.docker.com/develop/develop-images/baseimages/

的docker文档示例