소스에서 GTK를 다운로드하고 빌드하는 dockerfile이 있지만 다음 줄은 이미지의 환경 변수를 업데이트하지 않습니다.
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
1
LD_LIBRARY_PATH 및 PATH는 ENV not export를 사용하여 설정해야합니다. 또한 LD_LIBRARY_PATH는 PATH를 가리켜서는 안됩니다!. Dockerfile에서 파일을 삭제해도 이미지가 작아지지는 않습니다 . Centurylinklabs.com/optimizing-docker-images/?hvid=4wO7Yt를 확인 하십시오 .
—
Javier Castellanos
현재 dockerfile은 유효한 파일입니까?
—
Hui Wang
@HuiWang 그렇지 않을 수 있습니다. 그것은 쓰여졌 고, 그것은 1.5 년 전에 쓰여졌으며 그 이후로 많은 것이 바뀌 었습니다. 선택한 답변에 설명 된 변경 사항을 통합하십시오.
—
ILikeTacos