yum -y install在docker build中不假设是

时间:2018-08-08 21:39:07

标签: docker dockerfile centos7 yum

我正在尝试简单地创建一个在centOS映像上安装wget和解压缩的dockerfile。这是文件:

FROM centos:latest

EXPOSE 9000

RUN echo "proxy=http://xxx.xxx.xxx.xxx:x" >> /etc/yum.conf \
    && echo "proxy_username=username" >> /etc/yum.conf \
    && echo "proxy_password=password" >> /etc/yum.conf \
    && yum update \
    && yum -y install wget unzip
...

当我运行构建时,它可以很好地解决依赖关系,但是似乎不遵守-y标志并在所有提示中都选择是:

Total download size: 61 M
Is this ok [y/d/N]: Exiting on user command
Your transaction was saved, rerun it with:
yum load-transaction /tmp/yum_save_tx.2018-08-08.21-22.Q7f8LW.yumtx
The command '/bin/sh -c yum update     && yum -y install wget unzip' returned 
a non-zero code: 1

在这种情况下,我已经多次使用-y标志,并且从未遇到任何麻烦。看来这可能不是缓存问题,但我不知道发生了什么。我也尝试yum install -y wget unzip只是为了很好,但还是没有运气(如预期)。我已经搜索了stackoverflow,但似乎有相同问题的人都没有使用-y标志。任何指导将不胜感激,因为我不知道这么简单的文件可能会出什么问题。

1 个答案:

答案 0 :(得分:2)

您似乎在-y上错过了yum update

此外,您应该将这些命令拆分为单独的RUN命令。在这种情况下,并没有太大的区别,但是将echo分成不同的行会使其更加清晰。

您应该将updateinstall保留在同一命令中

https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#run