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: airComprobaciones 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_healthySobrescrituras 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 reloadRedes 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.localEjecució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 containerInicializació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.dPerfiles
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
- Compilaciones Docker de varias etapas para Go
- Configuración del entorno y secretos
- Docker Compose para desarrollo local
- Comprobaciones de estado y ajustes para producción