在Dockerfile中,如何更新PATH环境variables?
我有一个dockerfile从源代码下载和构buildGTK,但下面的行不更新我的图像的环境variables:
RUN PATH="/opt/gtk/bin:$PATH" RUN export PATH
我读过,我应该使用ENV设置环境值,但下面的指令似乎也不工作:
ENV PATH /opt/gtk/bin:$PATH
这是我的整个Dockerfile:
FROM ubuntu RUN apt-get update RUN apt-get install -y golang gcc make wget git libxml2-utils libwebkit2gtk-3.0-dev libcairo2 libcairo2-dev libcairo-gobject2 shared-mime-info libgdk-pixbuf2.0-* libglib2-* libatk1.0-* libpango1.0-* xserver-xorg xvfb # Downloading GTKcd RUN wget http://ftp.gnome.org/pub/gnome/sources/gtk+/3.12/gtk+-3.12.2.tar.xz RUN tar xf gtk+-3.12.2.tar.xz RUN cd gtk+-3.12.2 # Setting environment variables before running configure RUN CPPFLAGS="-I/opt/gtk/include" RUN LDFLAGS="-L/opt/gtk/lib" RUN PKG_CONFIG_PATH="/opt/gtk/lib/pkgconfig" RUN export CPPFLAGS LDFLAGS PKG_CONFIG_PATH RUN ./configure --prefix=/opt/gtk RUN make RUN make install # running ldconfig after make install so that the newly installed libraries are found. RUN ldconfig # Setting the LD_LIBRARY_PATH environment variable so the systems dynamic linker can find the newly installed libraries. RUN LD_LIBRARY_PATH="/opt/gtk/lib" # Updating PATH environment program so that utility binaries installed by the various libraries will be found. RUN PATH="/opt/gtk/bin:$PATH" RUN export LD_LIBRARY_PATH PATH # Collecting garbage RUN rm -rf gtk+-3.12.2.tar.xz # creating go code root RUN mkdir gocode RUN mkdir gocode/src RUN mkdir gocode/bin RUN mkdir gocode/pkg # Setting the GOROOT and GOPATH enviornment variables, any commands created are automatically added to PATH RUN GOROOT=/usr/lib/go RUN GOPATH=/root/gocode RUN PATH=$GOPATH/bin:$PATH RUN export GOROOT GOPATH PATH
您可以在Dockerfile
使用环境replace ,如下所示:
ENV PATH="/opt/gtk/bin:${PATH}"
虽然Gunter发布的答案是正确的,但与我已经发布的内容没有什么不同。 问题不是ENV
指令,而是后续的指令RUN export $PATH
一旦在Dockerfile中通过ENV
声明了环境variables,就不需要导出环境variables。
一旦RUN export ...
行被删除,我的图像已成功build立