-1

我正在尝试从 SCRATCH 在 centos 7 上构建 docker 映像。我已经执行了以下步骤:

FROM scratch
RUN rpm -ivh https://address/app.rpm
RUN YUM install tools 
...
...
CMD ["rpm","start"]

执行此操作后,我尝试使用命令“docker build -t testid -f ./dockerfile”构建此 dockerfile。

现在我看到以下错误:

Sending build context to Docker daemon  3.072kB
Step 1/16 : FROM scratch
 --->
Step 2/16 : RUN rpm -ivh https://address/app.rpm
 ---> Running in d25a0a879d9e
OCI runtime create failed: container_linux.go:349: starting container process caused "exec: \"/bin/sh\": stat /bin/sh: no such file or directory": unknown

请让我知道是否有人对此有建议。?

任何输入都会非常有帮助。

谢谢你。

4

1 回答 1

0

FROM scratch从一个完全空的图像开始。容器文件系统中唯一的东西是/dev,/proc/etcDocker 自动提供的文件。当您说rpm时,该命令不存在。字符串形式的RUN命令被包装在 中/bin/sh -c ...,但没有/bin目录。

FROM scratch是 Docker 的一种高级用法。如果您对静态链接二进制文件等概念以及 bare-string 和 JSON-array 之间的区别非常熟悉CMD,则可以使用它来制作非常小的图像。对于大多数典型用途,您至少需要从某种分发和包管理器开始。

如果你需要 Red Hat 的包管理工具,最简单的 Docker Hub 镜像是centos

FROM centos:8 # includes rpm, yum, /bin directory
RUN rpm -ivh https://address/app.rpm
RUN yum install tools
...
于 2020-06-02T10:06:12.357 回答