我试图通过dockerfile创建一个图像。但它会返回错误。
RUN sudo apt-get install software-properties-common -y
RUN nginx=stable
RUN echo "deb http://ppa.launchpad.net/nginx/$nginx/ubuntu lucid main" > /etc/apt/sources.list.d/nginx-$nginx-lucid.list
RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C300EE8C
RUN apt-get update
RUN apt-get install nginx
错误讯息:
W: Failed to fetch http://ppa.launchpad.net/nginx//ubuntu/dists/lucid/main/binary-amd64/Packages 404 Not Found
E: Some index files failed to download. They have been ignored, or old ones used instead.
Fetched 21.3 MB in 59s (355 kB/s)
The command '/bin/sh -c apt-get update' returned a non-zero code: 100
答案 0 :(得分:2)
你犯了这样的错误:
RUN nginx=stable
将设置一个您可以访问的环境变量。遗憾的是情况并非如此。
要在a dockerfile中创建环境变量,请使用ENV
命令;以最简单的形式,您可以定义您的环境。变量为:
ENV nginx stable # define it
然后,$nginx
替换stable
将在随后的RUN
命令中正确执行。
附加说明:
首先,您应该将-y
添加到上一个RUN
命令,这样它就不会失败:
RUN apt-get install nginx -y
第二个,您应该考虑将RUN
命令与&&
一起链接,以减少创建的图层数。