docker - 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
失败了吗?
解决方案
stat /bin/sh: no such file or directory
你从一无所有scratch
的图像开始。然后你告诉 Docker一个命令,但你没有 shell。RUN
所以你不能运行任何命令,更不用说tar
.
为什么不开始alpine
呢?
推荐阅读
- rspec - 在 Rakefile 中包含 spec_helper
- r - 如何按时间间隔连接 2 个数据表并按因子变量汇总重叠和非重叠时间段
- sql - SQL Server 查询“次日更改”
- node.js - 运行 npm link 时跳过 npm install
- verilog - 未知的命名约定 - Verilog
- ruby-on-rails - Rails 5 中的备份 gem - 推荐实践
- .net - ASP.NET Core 数据保护跨平台加密提供程序
- user-interface - 在 Unity 中检测 UI 面板内的下拉问题
- c++ - 只需生成一个导入库 (.lib) 而不链接 DLL
- magento - Magento 订单状态更改的触发观察者不适用于 sales_order_save_after