Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Variables de Entorno y Configuración en Compose | Trabajando con Docker Compose
Docker Essentials

bookVariables 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 .env en el mismo directorio que su docker-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 .env separado 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 volumes en 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.

question mark

¿Cuál es la principal ventaja de utilizar variables de entorno en un archivo Docker Compose?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 3. Capítulo 4

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Awesome!

Completion rate improved to 7.14

bookVariables 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 .env en el mismo directorio que su docker-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 .env separado 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 volumes en 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.

question mark

¿Cuál es la principal ventaja de utilizar variables de entorno en un archivo Docker Compose?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 3. Capítulo 4
some-alt