Variables de Entorno y Configuración en Compose
Uso de variables de entorno en docker-compose.yml
Las variables de entorno permiten crear configuraciones de Docker Compose flexibles y reutilizables. Al definir variables, se evita codificar valores como puertos, etiquetas de imágenes o credenciales directamente en el archivo docker-compose.yml. En su lugar, se hace referencia a estas variables y Docker Compose sustituye sus valores en tiempo de ejecución. Este enfoque es especialmente útil al desplegar la misma aplicación en diferentes entornos, como desarrollo, pruebas o producción.
Para definir y utilizar variables de entorno en su archivo Compose, siga estos pasos:
- Almacene las variables de entorno en un archivo
.enven el mismo directorio que sudocker-compose.yml; - Haga referencia a las variables en su archivo Compose utilizando la sintaxis
${VARIABLE_NAME}; - Sobrescriba variables pasándolas directamente en la terminal o como parte de su pipeline de CI/CD.
Suponga que desea configurar la contraseña de la base de datos y el puerto de la aplicación usando variables de entorno. Cree un archivo .env que contenga:
DB_PASSWORD=supersecret
APP_PORT=8080
En su docker-compose.yml, haga referencia a estas variables de la siguiente manera:
version: "3.8"
services:
web:
image: myapp:latest
ports:
- "${APP_PORT}:80"
environment:
- DB_PASSWORD=${DB_PASSWORD}
Cuando ejecute docker-compose up, Docker Compose sustituirá los valores del archivo .env en la configuración. Este método mantiene los datos sensibles o específicos del entorno fuera del archivo Compose y hace que su configuración sea más portátil.
Gestión de secretos y datos sensibles en archivos Compose
Aunque las variables de entorno son convenientes, no siempre son la forma más segura de manejar información sensible como contraseñas, claves API o certificados. Las variables de entorno pueden exponerse a través de registros, listas de procesos o control de versiones si no se gestionan cuidadosamente. Para mejorar la seguridad, puede utilizar varias técnicas para gestionar secretos en Docker Compose:
- Almacene valores sensibles en un archivo
.envseparado y asegúrese de que este archivo esté excluido del control de versiones usando.gitignore; - Utilice la compatibilidad de Docker Compose con Docker secrets si está desplegando con Docker Swarm, lo que permite montar secretos de forma segura como archivos dentro de los contenedores;
- Haga referencia a secretos como archivos en el host y móntelos en el contenedor usando la clave
volumesen su archivo Compose.
Ejemplo: Para evitar exponer una contraseña de base de datos, guárdela en un archivo llamado db_password.txt y móntelo en el contenedor:
services:
db:
image: postgres:latest
volumes:
- ./db_password.txt:/run/secrets/db_password
environment:
- POSTGRES_PASSWORD_FILE=/run/secrets/db_password
Este enfoque mantiene el secreto real fuera del archivo Compose y de las variables de entorno, reduciendo el riesgo de exposición accidental. Revise siempre su configuración y flujos de trabajo para asegurar que los secretos estén protegidos, y nunca suba datos sensibles al control de versiones.
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Awesome!
Completion rate improved to 7.14
Variables de Entorno y Configuración en Compose
Desliza para mostrar el menú
Uso de variables de entorno en docker-compose.yml
Las variables de entorno permiten crear configuraciones de Docker Compose flexibles y reutilizables. Al definir variables, se evita codificar valores como puertos, etiquetas de imágenes o credenciales directamente en el archivo docker-compose.yml. En su lugar, se hace referencia a estas variables y Docker Compose sustituye sus valores en tiempo de ejecución. Este enfoque es especialmente útil al desplegar la misma aplicación en diferentes entornos, como desarrollo, pruebas o producción.
Para definir y utilizar variables de entorno en su archivo Compose, siga estos pasos:
- Almacene las variables de entorno en un archivo
.enven el mismo directorio que sudocker-compose.yml; - Haga referencia a las variables en su archivo Compose utilizando la sintaxis
${VARIABLE_NAME}; - Sobrescriba variables pasándolas directamente en la terminal o como parte de su pipeline de CI/CD.
Suponga que desea configurar la contraseña de la base de datos y el puerto de la aplicación usando variables de entorno. Cree un archivo .env que contenga:
DB_PASSWORD=supersecret
APP_PORT=8080
En su docker-compose.yml, haga referencia a estas variables de la siguiente manera:
version: "3.8"
services:
web:
image: myapp:latest
ports:
- "${APP_PORT}:80"
environment:
- DB_PASSWORD=${DB_PASSWORD}
Cuando ejecute docker-compose up, Docker Compose sustituirá los valores del archivo .env en la configuración. Este método mantiene los datos sensibles o específicos del entorno fuera del archivo Compose y hace que su configuración sea más portátil.
Gestión de secretos y datos sensibles en archivos Compose
Aunque las variables de entorno son convenientes, no siempre son la forma más segura de manejar información sensible como contraseñas, claves API o certificados. Las variables de entorno pueden exponerse a través de registros, listas de procesos o control de versiones si no se gestionan cuidadosamente. Para mejorar la seguridad, puede utilizar varias técnicas para gestionar secretos en Docker Compose:
- Almacene valores sensibles en un archivo
.envseparado y asegúrese de que este archivo esté excluido del control de versiones usando.gitignore; - Utilice la compatibilidad de Docker Compose con Docker secrets si está desplegando con Docker Swarm, lo que permite montar secretos de forma segura como archivos dentro de los contenedores;
- Haga referencia a secretos como archivos en el host y móntelos en el contenedor usando la clave
volumesen su archivo Compose.
Ejemplo: Para evitar exponer una contraseña de base de datos, guárdela en un archivo llamado db_password.txt y móntelo en el contenedor:
services:
db:
image: postgres:latest
volumes:
- ./db_password.txt:/run/secrets/db_password
environment:
- POSTGRES_PASSWORD_FILE=/run/secrets/db_password
Este enfoque mantiene el secreto real fuera del archivo Compose y de las variables de entorno, reduciendo el riesgo de exposición accidental. Revise siempre su configuración y flujos de trabajo para asegurar que los secretos estén protegidos, y nunca suba datos sensibles al control de versiones.
¡Gracias por tus comentarios!