【问题标题】:yum -y install not assuming yes in docker buildyum -y install 在 docker build 中不假设是
【发布时间】:2018-08-08 21:39:07
【问题描述】:

我正在尝试简单地创建一个在 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 标志。任何指导都将不胜感激,因为我不知道这样一个简单的文件会出现什么问题。

【问题讨论】:

    标签: docker dockerfile centos7 yum


    【解决方案1】:

    您似乎在yum update 上缺少-y

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

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

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

    【讨论】:

    • 多哈。忘记了在此期间也有提示。你的意思是把代理的东西分成一个 RUN 和安装到另一个?还是将更新和安装拆分为单独的 RUN?
    猜你喜欢
    • 2017-05-03
    • 1970-01-01
    • 2019-08-09
    • 2020-03-30
    • 1970-01-01
    • 2021-12-05
    • 2020-12-24
    • 2020-12-29
    • 2017-12-01
    相关资源
    最近更新 更多