作为 docker 构建的一部分,我在脚本中有一行,如下所示:
RUN unzip myzipfile.zip
Run Code Online (Sandbox Code Playgroud)
在脚本的该行上,它失败并出现以下错误:
/bin/sh: unzip: command not found
Run Code Online (Sandbox Code Playgroud)
这是在 Red Hat Enterprise Linux 7 上进行的,基础 Docker 镜像也是 RHEL7 基础镜像。
如果 Docker 构建环境中不存在解压缩实用程序,那么如何解压缩某些内容?unzip 存在于正在构建的服务器上,尽管我认为这没有帮助。我应该检查是否有可以解压缩文件的备用实用程序,或者是否需要在基础映像中安装解压缩?
如果有任何方法可以在不需要安装任何东西的情况下执行此操作,那就更好了,因为我认为我没有权限这样做,即使我这样做了,Docker 构建发生的服务器也没有连接到互联网。
小智 3
您必须unzip
使用yum install unzip
. 如果您不想unzip
出现在最终图像中,您有以下几种选择:
tar.gz
并使用ADD myfile.tar.gz /some/folder
,Docker 会自动在那里解压它。使用多阶段构建来安装unzip
,准备文件,然后在第二阶段复制文件。
FROM registry.access.redhat.com/rhel7/rhel AS builder
RUN yum install unzip
ADD myfile.zip /dist
RUN cd /dist && unzip myfile.zip && rm myfile.zip
FROM registry.access.redhat.com/rhel7/rhel
COPY --from=builder /dist/ /target
Run Code Online (Sandbox Code Playgroud) 归档时间: |
|
查看次数: |
34698 次 |
最近记录: |