我有一个包含以下内容的Docker文件:
FROM ubuntu
MAINTAINER Zeinab Abbasimazar
RUN apt-get update
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends apt-utils
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y wget unzip curl aptitude
RUN aptitude search curl
RUN VERSION=$(curl myURL 2>&1 | grep -o -E 'href="([^"#]+)"' | cut -d'"' -f2 | egrep component-[0-9].[0-9].[0-9]$ | cut -d'-' -f3); echo $VERSION
如果安装了curl
,则在任何linux命令行中都会按预期执行最后一行命令echos版本,但在docker build期间不会返回任何版本。
答案 0 :(得分:0)
关于我的resolv.conf
文件的全部内容未正确设置且curl无法访问该网址;但由于我之前使用了cut
和grep
命令,所以我无法弄明白。
我用谷歌搜索,发现我应该为resolve.conf
设置所需的配置,然后在一个curl
命令中执行RUN
,以便能够解析URL({{ 3}})。
我现在有Dockerfile
,这很好用:
FROM ubuntu
MAINTAINER Zeinab Abbasimazar
RUN apt-get update
RUN apt-get install -y curl
RUN echo "nameserver myDNS\n" > /etc/resolv.conf; \
export VERSION=$(curl myURL 2>&1 | grep -o -E 'href="([^"#]+)"' | cut -d'"' -f2 | egrep component-[0-9].[0-9].[0-9]$ | cut -d'-' -f3); \
echo $VERSION