La prioridad de cargar variables de entorno en Linux y el problema de las variables de entorno en Docker: el camino al sueño

Descripción general de las variables de entorno en Linux:

/ etc / profile: este archivo establece la información del entorno para cada usuario del sistema.Cuando el usuario inicia sesión por primera vez, el archivo se ejecuta y la configuración del shell se recopila del archivo de configuración en / etc / profile. d directorio.
/ etc / bashrc: Ejecute este archivo para cada usuario que ejecute el shell bash.Cuando se abre el shell bash, se lee el archivo.

// Variables de entorno a nivel de usuario, los usuarios pueden anular las variables globales
~ / .bash_profile: Cada usuario puede usar este archivo para ingresar información de shell dedicada a su propio uso. Cuando el usuario inicia sesión, el archivo se ejecuta solo una vez. Por defecto, Establece algunas variables de entorno y ejecuta el archivo .bashrc del usuario.
~ / .Bashrc: Este archivo contiene información de bash dedicada a su shell bash, que se lee al iniciar sesión y cada vez que se abre un nuevo shell.
~ /.Bash_logout: Este El archivo se ejecuta cada vez que sale del sistema (salir del shell bash) .Las

variables (globales) configuradas en / etc / profile pueden actuar sobre cualquier usuario,
y las variables configuradas en ~ / .bashrc, etc. (Parcial) Solo el las variables en / etc / profile se pueden heredar, son una relación "padre-hijo".

~ / .bash_profile es interactivo, el modo de inicio de sesión para ingresar a la operación bash
~ / .bashrc es el modo interactivo sin inicio de sesión para ingresar a la operación bash
Usualmente las dos configuraciones son aproximadamente iguales, por lo que normalmente el primero llamará al segundo.

 

Variables de entorno de Docker:

Debe configurarse en ~ / .bashrc. Si se configura en / etc / profile, debe ejecutar source / etc / profile cada vez que cambie de usuario o salga del contenedor y vuelva a ingresar.

Si está creando un espejo, use ENV para agregar variables de entorno al hacer un espejo, como:

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

 

Supongo que te gusta

Origin blog.csdn.net/qq_34777982/article/details/109767202
Recomendado
Clasificación