[解決済み] Dockerfileで、PATH環境変数を更新するには?
2022-03-17 17:03:09
質問
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
解決方法は?
を使用することができます。
環境の置き換え
の中で
Dockerfile
を以下のように設定します。
ENV PATH="/opt/gtk/bin:${PATH}"
関連
-
[解決済み] ポッドで "ErrImageNeverPull "を取得する
-
[解決済み] Dockerfileの'COPY'と'ADD'コマンドの違いは何ですか?
-
[解決済み] Dockerコンテナの中から、マシンのローカルホストに接続するにはどうすればよいですか?
-
[解決済み] DockerfileのCMDとENTRYPOINTの違いは何ですか?
-
[解決済み] ホストからDockerコンテナにファイルをコピーする方法は?
-
[解決済み] リポジトリを使用せずに、あるホストから別のホストにDockerイメージをコピーする方法
-
[解決済み] ホストからDockerコンテナのIPアドレスを取得する方法
-
[解決済み] 古いDockerコンテナを削除する方法
-
[解決済み] Dockerコンテナに環境変数を渡すにはどうしたらいいですか?
-
[解決済み】Dockerは仮想マシンとどう違うの?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] docker: ドライバがエンドポイントウェブサーバの外部接続のプログラミングに失敗しました。
-
[解決済み] docker-compose down default_network エラー
-
[解決済み] docker run --initに相当するdocker-composeは何ですか?
-
ドッカーサーバーがHTTPSクライアントに対してHTTPレスポンスを返す問題処理
-
docker サーバーが HTTPS クライアントに HTTP 応答を返した
-
docker encountered problem 4: yaml: line 1: mapping values are not allowed in this context.
-
httpコード中にdocker registry apiのインタラクションを呼び出す コード詳細
-
docker use error: input device is not a TTY
-
DockerのインストールとRocketMQの利用について
-
ドッカーコンテナの状態がExitと表示される(1)