Docker Compose paikalliseen kehitykseen
Go-palvelun yhdistäminen PostgreSQL:ään ja Redisiin
Docker Compose paikalliseen kehitykseen on ilmainen Go Academy-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Go Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Go Academy-kurssilla on yhteensä 4 oppituntia.
Miksi Docker Compose?
Docker Compose orkestroi useita kontteja (sovellus, tietokanta, välimuisti, viestinvälittäjä) paikallista kehitystä varten. Se jäljittelee tuotantoa muistuttavaa ympäristöä ilman palveluiden manuaalista määrittämistä.
docker-compose.yml:n rakenne
Määritelkää palvelut, verkot ja volyymit YAML-tiedostossa:
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 Airilla
Käyttäkää github.com/air-verse/air-työkalua live-reloadaukseen kehityksen aikana. Liittäkää lähdekoodi konttiin ja suorittakaa air binäärin sijaan:
app:
volumes:
- .:/app
command: airTerveystarkistukset
Määritelkää terveystarkistukset, jotta depends_on odottaa tietokannan olevan todella valmis eikä vain käynnistynyt:
db:
healthcheck:
test: ["CMD-SHELL", "pg_isready -U app"]
interval: 5s
timeout: 3s
retries: 5
app:
depends_on:
db:
condition: service_healthyYmpäristökohtaiset ohitukset
Käyttäkää docker-compose.override.yml-tiedostoa (se yhdistetään automaattisesti) vain paikalliseen ympäristöön tarkoitetuille asetuksille. Näin perustiedosto pysyy siistinä CI:tä varten:
# docker-compose.override.yml
services:
app:
volumes: [".:/app"] # source mount for live reloadNimetyt verkot
Sijoittakaa palvelut yhteiseen mukautettuun verkkoon, jotta ne voidaan löytää DNS:n avulla palvelun nimen perusteella:
networks:
backend:
driver: bridge
services:
app:
networks: [backend]
db:
networks: [backend]Ympäristötiedostot
Käyttäkää env_file-avainta .env-tiedostojen lataamiseen konttiin, jolloin salaisuuksia ei tarvitse sisällyttää YAML-tiedostoon:
app:
env_file: .env.localKomentojen suorittaminen
Yleisiä Compose-komentoja:
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 containerTietokannan alustus
Liittäkää SQL-alustustiedostot postgres-imagen /docker-entrypoint-initdb.d-hakemistoon — ne suoritetaan ensimmäisen konttiluonnin yhteydessä:
db:
volumes:
- ./migrations:/docker-entrypoint-initdb.dProfiilit
Käyttäkää Composen profiileja valinnaisten palveluiden (kuten valvontapinon) käynnistämiseen vain tarvittaessa:
services:
grafana:
profiles: ["monitoring"]Compose CI:ssä
Suorittakaa integraatiotestit CI:ssä oikeita palveluita vasten Composen avulla. GitHub Actions tukee Docker Composea natiivisti; käyttäkää terveystarkistuksia odottaaksenne palveluiden valmistumista.
Pikatarkistus
Miten varmistatte, että sovelluskontti odottaa tietokannan valmistumista Docker Composessa?
Kertaus: Docker Compose
Tärkeimmät asiat:
- docker-compose.yml määrittelee kaikki palvelut, verkot ja volyymit
- depends_on ja healthcheck varmistavat palveluiden valmiuden
- Ohitustiedostot paikallisen kehityksen asetuksille; env_file salaisuuksille
- Air live-reloadaukseen; liittäkää lähdekoodi volyymina
Opi Go tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 51
- Oppitunnit
- 203
Usein kysytyt kysymykset
Onko oppitunti ”Docker Compose paikalliseen kehitykseen” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Go Academy-oppimispolun 3 oppituntia, myös oppitunnin “Docker Compose paikalliseen kehitykseen”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Go Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Docker Compose paikalliseen kehitykseen”?
Go-palvelun yhdistäminen PostgreSQL:ään ja Redisiin Harjoittelet Go Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Go Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Go Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.
Kuinka kauan ”Docker Compose paikalliseen kehitykseen”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Go Academy-oppitunnilla?
Kyllä. Jokainen Go Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Monivaiheiset Docker-koontiversiot Go:lle
- Ympäristökonfiguraatio ja salaisuudet
- Docker Compose paikalliseen kehitykseen
- Terveystarkistukset ja tuotantoviritys