Ich habe eine Dockerdatei, die GTK aus dem Quellcode herunterlädt und erstellt, aber die folgende Zeile aktualisiert nicht die Umgebungsvariable meines Images:
RUN PATH="/opt/gtk/bin:$PATH"
RUN export PATH
Ich habe gelesen, dass ich ENV verwenden sollte, um Umgebungsvariablen zu setzen, aber die folgende Anweisung scheint auch nicht zu funktionieren:
ENV PATH /opt/gtk/bin:$PATH
Das ist meine gesamte Dockerdatei:
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
# Setzen von Umgebungsvariablen vor dem Ausführen von 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
# Ausführen von ldconfig nach make install, damit die neu installierten Bibliotheken gefunden werden.
RUN ldconfig
# Setzen der LD_LIBRARY_PATH Umgebungsvariable, damit der dynamische Linker des Systems die neu installierten Bibliotheken finden kann.
RUN LD_LIBRARY_PATH="/opt/gtk/lib"
# Aktualisierung des PATH-Umgebungsprogramms, damit Dienstprogrammbinärdateien, die von verschiedenen Bibliotheken installiert wurden, gefunden werden.
RUN PATH="/opt/gtk/bin:$PATH"
RUN export LD_LIBRARY_PATH PATH
# Müll einsammeln
RUN rm -rf gtk+-3.12.2.tar.xz
# Erstellen des Wurzelverzeichnisses des Go-Codes
RUN mkdir gocode
RUN mkdir gocode/src
RUN mkdir gocode/bin
RUN mkdir gocode/pkg
# Setzen der GOROOT- und GOPATH-Umgebungsvariablen, alle erstellten Befehle werden automatisch zum PATH hinzugefügt
RUN GOROOT=/usr/lib/go
RUN GOPATH=/root/gocode
RUN PATH=$GOPATH/bin:$PATH
RUN export GOROOT GOPATH PATH