Linuxでの環境変数のロードの優先順位とDockerでの環境変数の問題-夢への道

Linuxでの環境変数の概要:

/ etc / profile:このファイルは、システムの各ユーザーの環境情報を設定します。ユーザーが初めてログインすると、ファイルが実行され、シェル設定が/ etc / profileの構成ファイルから収集されます。 dディレクトリ
。/etc/bashrc:bashシェルを実行しているすべてのユーザーに対してこのファイルを実行します。bashシェルを開くと、ファイルが読み取られます。

//ユーザーレベルの環境変数、ユーザーはグローバル変数をオーバーライドできます
〜/ .bash_profile:すべてのユーザーはこのファイルを使用して、自分専用のシェル情報を入力できます。ユーザーがログインすると、ファイルは1回だけ実行されます!デフォルトでは、彼はいくつかの環境変数を設定し、ユーザーの.bashrcファイルを実行します
。〜 / .bashrc:このファイルには、ログイン時および新しいシェルが開かれるたびに読み取られる、bashシェル専用のbash情報が含まれています。〜 /
.bash_logout:これファイルは、システムを終了する(bashシェルを終了する)たびに実行されます。/etc/profileに

設定された変数(グローバル)はすべてのユーザーに作用し
、〜/ .bashrcなどに設定された変数(部分的)のみ/ etc / profile内の変数は継承でき、「親子」関係です

。〜 / .bash_profileはインタラクティブで、bash操作に入るログインモード
〜/ .bashrcはbash操作に入るインタラクティブな非ログインモード
通常、2つの設定ほぼ同じであるため、通常、前者は後者を呼び出します。

 

Docker環境変数:

〜/ .bashrcで設定する必要があります。/etc/profileで設定する場合は、ユーザーを切り替えるか、コンテナを終了して再入力するたびに、ソース/ etc / profileを実行する必要があります。

ミラーを作成する場合は、ENVを使用して、ミラーを作成するときに次のような環境変数を追加します。

ENV export JAVA_HOME=/usr/java/jdk1.8.0_221-amd64
ENV export JRE_HOME=${JAVA_HOME}/jre
ENV export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
ENV export PATH=${JAVA_HOME}/bin:$PATH

 

おすすめ

転載: blog.csdn.net/qq_34777982/article/details/109767202