我正在尝试简单地创建一个在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标志。任何指导将不胜感激,因为我不知道这么简单的文件可能会出什么问题。
答案 0 :(得分:2)
您似乎在-y
上错过了yum update
。
此外,您应该将这些命令拆分为单独的RUN
命令。在这种情况下,并没有太大的区别,但是将echo
分成不同的行会使其更加清晰。
您应该将update
和install
保留在同一命令中
https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#run