0Pricing
Docker & DevOps Fundamentals · Lección

Variables de entorno y archivos .env

Configure limpiamente los servicios de Compose mediante variables de entorno, sustitución de variables y un archivo .env, para que un solo archivo de Compose funcione en desarrollo, staging y producción.

Variables de entorno y archivos .env es una lección gratuita de Docker & DevOps Fundamentals en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Docker & DevOps Fundamentals, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Docker & DevOps Fundamentals incluye 4 lecciones en total.

¿Por qué externalizar la configuración?

Escribir contraseñas y puertos directamente en un archivo de Compose es frágil y poco seguro. Las variables de entorno permiten cambiar el comportamiento según el entorno sin editar el YAML.

  • Mantener los secretos fuera del control de versiones
  • Reutilizar un mismo archivo de Compose en cualquier lugar
  • Invalidar valores en tiempo de ejecución

La clave environment

Dentro de un servicio, declare las variables bajo environment como un mapa. Estas variables se inyectan en el contenedor al iniciarlo.

services:
  db:
    image: postgres:16
    environment:
      POSTGRES_USER: app
      POSTGRES_PASSWORD: secret

Formato de lista

La misma clave también acepta una lista de cadenas KEY=VALUE. Elija el formato que le resulte más legible.

services:
  db:
    image: postgres:16
    environment:
      - POSTGRES_USER=app
      - POSTGRES_PASSWORD=secret

El archivo .env

Compose lee automáticamente un archivo llamado .env en el directorio del proyecto. Defina allí los valores una sola vez y haga referencia a ellos mediante la sustitución ${VAR}.

# .env
PG_USER=app
PG_PASS=secret
WEB_PORT=8080

Sustitución de variables

Use ${VAR} en cualquier lugar del archivo de Compose. Compose lo sustituye por el valor de .env o del shell antes de analizar el archivo.

services:
  db:
    image: postgres:16
    environment:
      POSTGRES_USER: ${PG_USER}
      POSTGRES_PASSWORD: ${PG_PASS}

Valores predeterminados

Proporcione un valor alternativo con ${VAR:-default}. Si la variable no está definida o está vacía, se utiliza el valor predeterminado, lo que permite que la pila funcione sin un archivo .env completo.

ports:
  - "${WEB_PORT:-80}:80"

Variables obligatorias

Use ${VAR:?message} para hacer que una variable sea obligatoria. Compose se detiene y muestra su mensaje si falta, lo que permite detectar pronto una configuración incorrecta.

environment:
  API_KEY: ${API_KEY:?API_KEY must be set}

La directiva env_file

Para pasar un archivo completo de variables directamente a un contenedor (no solo para realizar sustituciones), use env_file. Cada línea se convierte en una variable de entorno del contenedor.

services:
  api:
    image: myapi:1.0
    env_file:
      - api.env

Reglas de precedencia

Cuando una variable se define en varios lugares, Compose aplica un orden de precedencia. El entorno del shell tiene prioridad sobre .env; una entrada explícita de environment: tiene prioridad sobre env_file.

  • Shell / CLI -e tiene prioridad
  • después environment:
  • después env_file
  • por último, los valores predeterminados de la imagen

Inspección de valores resueltos

Ejecute docker compose config para mostrar el archivo de Compose completamente resuelto, con todas las sustituciones aplicadas. Es ideal para verificar qué se ejecutará realmente.

docker compose config

Mantenga los secretos fuera de Git

Confirme un archivo .env.example con marcadores de posición y añada el archivo .env real a .gitignore. Para los secretos de producción reales, prefiera Docker secrets a las variables de entorno.

# .gitignore
.env

Comprobación rápida

¿Cómo funcionan los valores predeterminados en la sustitución?

Resumen

Ahora puede configurar Compose de forma limpia con datos del entorno:

  • environment: inyecta variables por servicio
  • Un archivo .env proporciona valores para la sustitución de ${VAR}
  • :- proporciona valores predeterminados y :? marca los valores obligatorios
  • docker compose config muestra el resultado resuelto

Esto permite usar un mismo archivo de Compose en cualquier entorno.

Preguntas frecuentes

¿La lección «Variables de entorno y archivos .env» es gratis?

Sí — el texto completo de «Variables de entorno y archivos .env» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Docker & DevOps Fundamentals, actualiza a CoddyKit PRO. El curso de Docker & DevOps Fundamentals incluye 4 lecciones en total.

¿Qué aprenderé en «Variables de entorno y archivos .env»?

Configure limpiamente los servicios de Compose mediante variables de entorno, sustitución de variables y un archivo .env, para que un solo archivo de Compose funcione en desarrollo, staging y producc… Practicas Docker & DevOps Fundamentals con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Docker & DevOps Fundamentals?

No se requiere experiencia previa. Docker & DevOps Fundamentals en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.

¿Cuánto tiempo toma la lección «Variables de entorno y archivos .env»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Docker & DevOps Fundamentals?

Sí. Cada lección de Docker & DevOps Fundamentals incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. ¿Qué es Docker Compose?
  2. Escritura de un archivo Compose
  3. Implementación de aplicaciones con varios servicios
  4. Variables de entorno y archivos .env
← Volver a Docker & DevOps Fundamentals