0Pricing
Go Academy · Lección

Docker Compose para desarrollo local

Conexión de un servicio Go con PostgreSQL y Redis

Docker Compose para desarrollo local es una lección gratuita de Go Academy en CoddyKit. Esta es la lección 3 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 Go Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Go Academy incluye 4 lecciones en total.

¿Por qué Docker Compose?

Docker Compose orquesta varios contenedores (aplicación, base de datos, caché y agente de mensajes) para el desarrollo local, y reproduce un entorno similar al de producción sin tener que configurar los servicios manualmente.

Estructura de docker-compose.yml

Defina los servicios, las redes y los volúmenes en un archivo YAML:

services:
  app:
    build: .
    ports: ["8080:8080"]
    environment:
      - DATABASE_URL=postgres://app:pass@db/mydb
    depends_on: [db]
  db:
    image: postgres:15
    environment:
      POSTGRES_USER: app
      POSTGRES_PASSWORD: pass
      POSTGRES_DB: mydb
    volumes:
      - pgdata:/var/lib/postgresql/data
volumes:
  pgdata:

Recarga en directo con Air

Utilice github.com/air-verse/air para recargar la aplicación en directo durante el desarrollo. Monte el código fuente en el contenedor y ejecute air en lugar del binario:

app:
  volumes:
    - .:/app
  command: air

Comprobaciones de estado

Defina comprobaciones de estado para que depends_on espere a que la base de datos esté realmente lista, no solo iniciada:

db:
  healthcheck:
    test: ["CMD-SHELL", "pg_isready -U app"]
    interval: 5s
    timeout: 3s
    retries: 5
app:
  depends_on:
    db:
      condition: service_healthy

Sobrescrituras para el entorno

Utilice docker-compose.override.yml (que se combina automáticamente) para la configuración exclusiva del entorno local y mantenga limpio el archivo base para CI:

# docker-compose.override.yml
services:
  app:
    volumes: [".:/app"]  # source mount for live reload

Redes con nombre

Coloque los servicios en una red personalizada compartida para permitir el descubrimiento de servicios mediante DNS usando el nombre del servicio:

networks:
  backend:
    driver: bridge
services:
  app:
    networks: [backend]
  db:
    networks: [backend]

Archivos de entorno

Utilice la clave env_file para cargar archivos .env en el contenedor y mantener los secretos fuera del archivo YAML:

app:
  env_file: .env.local

Ejecución de comandos

Comandos habituales de Compose:

docker compose up -d      # start in background
docker compose down -v    # stop and remove volumes
docker compose logs -f app # stream app logs
docker compose exec db psql -U app mydb # run in container

Inicialización de la base de datos

Monte los archivos SQL de inicialización en el directorio /docker-entrypoint-initdb.d de la imagen de postgres; se ejecutan al crear el contenedor por primera vez:

db:
  volumes:
    - ./migrations:/docker-entrypoint-initdb.d

Perfiles

Utilice los perfiles de Compose para iniciar servicios opcionales (por ejemplo, una pila de monitorización) solo cuando sea necesario:

services:
  grafana:
    profiles: ["monitoring"]

Compose en CI

Ejecute pruebas de integración contra servicios reales en CI mediante Compose. GitHub Actions admite Docker Compose de forma nativa; utilice comprobaciones de estado para esperar a que los servicios estén listos.

Comprobación rápida

¿Cómo se asegura de que el contenedor de la aplicación espere a que la base de datos esté lista en Docker Compose?

Resumen: Docker Compose

Puntos clave:

  • docker-compose.yml define todos los servicios, las redes y los volúmenes
  • depends_on y healthcheck permiten comprobar que los servicios están listos
  • Archivos de sobrescritura para la configuración del desarrollo local; env_file para los secretos
  • Air permite recargar en directo; monte el código fuente como un volumen

Preguntas frecuentes

¿La lección «Docker Compose para desarrollo local» es gratis?

Sí — el texto completo de «Docker Compose para desarrollo local» 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 Go Academy, actualiza a CoddyKit PRO. El curso de Go Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Docker Compose para desarrollo local»?

Conexión de un servicio Go con PostgreSQL y Redis Practicas Go Academy 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 Go Academy?

No se requiere experiencia previa. Go Academy 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 3 de 4.

¿Cuánto tiempo toma la lección «Docker Compose para desarrollo local»?

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 Go Academy?

Sí. Cada lección de Go Academy 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. Compilaciones Docker de varias etapas para Go
  2. Configuración del entorno y secretos
  3. Docker Compose para desarrollo local
  4. Comprobaciones de estado y ajustes para producción
← Volver a Go Academy