在dockerfile RUN命令中使用环境变量

时间:2015-11-21 06:07:00

标签: ubuntu docker dockerfile

我试图通过dockerfile创建一个图像。但它会返回错误。

Nginx 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

1 个答案:

答案 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命令与&&一起链接,以减少创建的图层数。