首页 > 解决方案 > tar -xvf 在 dockerfile 中失败

问题描述

我想使用以下 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

解决方案


stat /bin/sh: no such file or directory

你从一无所有scratch的图像开始。然后你告诉 Docker一个命令,但你没有 shell。RUN

所以你不能运行任何命令,更不用说tar.

为什么不开始alpine呢?


推荐阅读