我试图从SCRATCH在centos 7上构建一个docker镜像。我已经执行了以下步骤。
FROM scratch
RUN rpm -ivh https://address/app.rpm
RUN YUM install tools
...
...
CMD ["rpm","start"]
执行后,我试图用命令 "docker build -t testsid -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
请让我知道是否有人对此有建议。?
任何输入将是非常有用的。
谢谢你。
FROM scratch
从一个完全空的镜像开始。 容器文件系统中唯一会出现的东西是 /dev
, /proc
和 /etc
Docker自动提供的。 当你说 rpm
,该命令不存在。 一个字符串形式的 RUN
命令会被包裹在 /bin/sh -c ...
但没有 /bin
目录。
FROM scratch
是Docker的一种高级用法。 如果你对静态链接的二进制文件以及裸串和JSON数组之间的区别等概念非常熟悉,那么你就可以使用Docker。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
...