tag imagenes hub example docker dockerhub

imagenes - docker tag example



En un Dockerfile, ¿Cómo actualizar la variable de entorno PATH? (3)

Aunque la respuesta que Gunter publicó fue correcta, no es diferente de lo que ya había publicado. El problema no era la directiva ENV , sino la instrucción posterior RUN export $PATH

No es necesario exportar las variables de entorno, una vez que las haya declarado a través de ENV en su Dockerfile.

Tan pronto como se eliminó la RUN export ... se eliminaron las líneas, mi imagen se construyó con éxito

Tengo un dockerfile que descarga y construye GTK desde el origen, pero la siguiente línea no actualiza la variable de entorno de mi imagen:

RUN PATH="/opt/gtk/bin:$PATH" RUN export PATH

Leí que debería usar ENV para establecer valores de entorno, pero las siguientes instrucciones tampoco parecen funcionar:

ENV PATH /opt/gtk/bin:$PATH

Este es todo mi 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


Esto se desaconseja (si desea crear / distribuir una imagen Docker limpia), ya que la variable PATH está establecida por /etc/profile script, el valor puede ser anulado.

head /etc/profile :

if [ "`id -u`" -eq 0 ]; then PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" else PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games" fi export PATH

Al final del Dockerfile, puede agregar:

RUN echo "export PATH=$PATH" > /etc/environment

Entonces PATH está configurado para todos los usuarios.