Docker Compose per lo sviluppo locale
Collegare un servizio Go a PostgreSQL e Redis
Docker Compose per lo sviluppo locale è una lezione Go Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Go Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Go Academy include 4 lezioni in totale.
Perché Docker Compose?
Docker Compose orchestra più container (applicazione, database, cache, message broker) per lo sviluppo locale, riproducendo un ambiente simile a quello di produzione senza dover configurare manualmente i servizi.
Struttura di docker-compose.yml
Definisca servizi, reti e volumi in un file 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:Live reload con Air
Utilizzi github.com/air-verse/air per il live reload durante lo sviluppo. Monti il codice sorgente nel container ed esegua air invece del binario:
app:
volumes:
- .:/app
command: airControlli dello stato
Definisca i controlli dello stato affinché depends_on attenda che il DB sia realmente pronto, non soltanto avviato:
db:
healthcheck:
test: ["CMD-SHELL", "pg_isready -U app"]
interval: 5s
timeout: 3s
retries: 5
app:
depends_on:
db:
condition: service_healthyOverride per l'ambiente
Utilizzi docker-compose.override.yml (unito automaticamente) per le impostazioni specifiche dell'ambiente locale, mantenendo pulito il file di base per la CI:
# docker-compose.override.yml
services:
app:
volumes: [".:/app"] # source mount for live reloadReti denominate
Inserisca i servizi in una rete personalizzata condivisa per consentire il service discovery tramite DNS usando il nome del servizio:
networks:
backend:
driver: bridge
services:
app:
networks: [backend]
db:
networks: [backend]File dell'ambiente
Utilizzi la chiave env_file per caricare i file .env nel container, mantenendo i segreti fuori dal file YAML:
app:
env_file: .env.localEsecuzione dei comandi
Comandi Compose comuni:
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 containerInizializzazione del database
Monti i file SQL di inizializzazione nella directory /docker-entrypoint-initdb.d dell'immagine postgres: vengono eseguiti alla prima creazione del container:
db:
volumes:
- ./migrations:/docker-entrypoint-initdb.dProfili
Utilizzi i profili Compose per avviare i servizi opzionali (ad esempio, uno stack di monitoraggio) solo quando necessario:
services:
grafana:
profiles: ["monitoring"]Compose nella CI
Esegua i test di integrazione con servizi reali nella CI utilizzando Compose. GitHub Actions supporta Docker Compose in modo nativo; utilizzi i controlli dello stato per attendere che i servizi siano pronti.
Verifica rapida
Come si fa ad assicurare che il container dell'applicazione attenda che il database sia pronto in Docker Compose?
Riepilogo: Docker Compose
Punti chiave:
- docker-compose.yml definisce tutti i servizi, le reti e i volumi
- depends_on + healthcheck per verificare che i servizi siano pronti
- File di override per le impostazioni dello sviluppo locale; env_file per i segreti
- Air per il live reload; monti il codice sorgente come volume
Impara Go con un tutor IA — gratis
Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.
- Corsi
- 51
- Lezioni
- 203
Domande Frequenti
La lezione «Docker Compose per lo sviluppo locale» è gratuita?
Sì — il testo completo di «Docker Compose per lo sviluppo locale» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Go Academy, passa a CoddyKit PRO. Il corso Go Academy include 4 lezioni in totale.
Cosa imparerò in «Docker Compose per lo sviluppo locale»?
Collegare un servizio Go a PostgreSQL e Redis Eserciti Go Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Go Academy?
Non è richiesta alcuna esperienza precedente. Go Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.
Quanto tempo richiede la lezione «Docker Compose per lo sviluppo locale»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Go Academy?
Sì. Ogni lezione Go Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Build Docker multi-stage per Go
- Configurazione dell'ambiente e segreti
- Docker Compose per lo sviluppo locale
- Health check e ottimizzazione per la produzione