Docker命令在构建期间失败,但在运行中的容器中执行时成功

命令 :

docker build -t nginx-ubuntu .

下面的Dockerfile:

来自ubuntu:12.10

运行apt更新

运行apt-get -y install libpcre3 libssl-dev

运行apt-get -y install libpcre3-dev

运行apt-get -y install wget zip gcc

运行wget http://nginx.org/download/nginx-1.4.1.tar.gz

运行gunzip nginx-1.4.1.tar.gz

运行tar -xf nginx-1.4.1.tar

运行wget --no-check-certificate https://github.com/max-l/nginx_accept_language_module/archive/master.zip

运行解压大师

运行cd nginx-1.4.1

运行./configure --add-module = .. / nginx_accept_language_module-master --with-http_ssl_module --with-pcre = / lib / x86_64-linux-gnu --with-openssl = / usr / lib / x86_64-linux-牛羚

在最后一行失败(./configure …)

如果我删除了最后一行并在容器中运行了bash,然后手动执行了最后一行,那么它将起作用。

我希望将命令添加到Dockerfile中(由RUN前缀)后,在容器中成功运行的任何命令都应该起作用

我错过了什么吗?

回答:

pwd在RUN命令中不是持久的。您需要在同一RUN中进行cd和配置。

这个Dockerfile可以正常工作:

FROM ubuntu:12.10

RUN apt-get update

RUN apt-get -y install libpcre3 libssl-dev

RUN apt-get -y install libpcre3-dev

RUN apt-get -y install wget zip gcc

RUN wget http://nginx.org/download/nginx-1.4.1.tar.gz

RUN gunzip nginx-1.4.1.tar.gz

RUN tar -xf nginx-1.4.1.tar

RUN wget --no-check-certificate https://github.com/max-l/nginx_accept_language_module/archive/master.zip

RUN unzip master

RUN cd nginx-1.4.1 && ./configure --add-module=../nginx_accept_language_module-master --with-http_ssl_module --with-pcre=/lib/x86_64-linux-gnu --with-openssl=/usr/lib/x86_64-linux-gnu

以上是 Docker命令在构建期间失败,但在运行中的容器中执行时成功 的全部内容, 来源链接: utcz.com/qa/416963.html

回到顶部