【问题标题】:tar -xvf failing in dockerfiletar -xvf 在 dockerfile 中失败
【发布时间】:2020-06-28 13:48:17
【问题描述】:

我想使用以下 Dockerfile 创建自己的 Docker 映像

FROM scratch
COPY apache-cassandra-3.11.6-bin.tar.gz .
RUN tar -xzf apache-cassandra-3.11.6-bin.tar.gz 

当我运行命令时,tar 指令失败。为什么?我在 Windows 10 上。

C:\Users\manuc\Documents\manu\cassandra_image_test>docker build -f CassandraImageDockerFile.txt -t manucassandra .
Sending build context to Docker daemon  184.8MB
Step 1/3 : FROM scratch
 --->
Step 2/3 : COPY apache-cassandra-3.11.6-bin.tar.gz .
 ---> Using cache
 ---> deda426d6948
Step 3/3 : RUN tar -xzf apache-cassandra-3.11.6-bin.tar.gz .
 ---> Running in 3edfb1031c06
OCI runtime create failed: container_linux.go:349: starting container process caused "exec: \"/bin/sh\": stat /bin/sh: no such file or directory": unknown

可能是因为我没有使用现有图像,tar 不存在于图像中,因此tar 失败了吗?

【问题讨论】:

标签: docker


【解决方案1】:
stat /bin/sh: no such file or directory

您从一个 什么都没有scratch 图像开始。然后你告诉DockerRUN一个命令,但是你没有shell。

所以你不能运行 any 命令,更不用说tar

为什么不以alpine 开头?

【讨论】:

  • 谢谢。将从头开始更改为 ubuntu,这使事情向前发展。现在是制作图像的下一个挑战。
【解决方案2】:

看起来,无论基本图像“scratch”是什么,它都没有/bin/sh,更不用说tar 或其他任何东西了。我会考虑从已知的操作系统镜像开始,甚至是 DockerHub 上的 Cassandra 官方镜像。 https://hub.docker.com/_/cassandra

【讨论】:

    【解决方案3】:

    一个从头开始的 Dockerfile 是从一个根本没有任何内容的基础镜像开始的。它完全是空的。没有一套基础工具或库或其他任何东西。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-19
      • 2016-10-25
      • 1970-01-01
      • 1970-01-01
      • 2015-02-21
      • 2023-01-08
      相关资源
      最近更新 更多