Att använda Docker Compose för utvecklings beroenden
Inleiding
När man utvecklar mjukvara så gör vi traditionellt en databas, ,, ett meddelandens kö,,, ett kass, , och kanske några andra tjänster.. Det kan vara svårt att hantera, M SK5, speciellt om du arbetar med flera projekt, MSC6 Docker Compose är ett verktyg som låter dig definiera och köra flera Docker-applikationer icontainer.
I den här postan, visar jag er hur man använder Docker Compose för att sköta utvecklings beroenden
Förberedelser
Först måste du installera dockaren på vilken plattform som helst som du använder. här.
NOTET: Jag' har funnit att på Windows behöver du verkligen köra Docker Desktop installer som administratör för att säkerställa att den installerar korrekt .
Att skapa en Docker Compose-Datei
Docker Compose använder en YAML-Datei för att definiera de tjänster du vill köra. devdeps-docker-compose.yml file som definierar en databas- och ett e-mailtjänster:
services:
smtp4dev:
image: rnwood/smtp4dev
ports:
- "3002:80"
- "2525:25"
volumes:
# This is where smtp4dev stores the database..
- e:/smtp4dev-data:/smtp4dev
restart: always
postgres:
image: postgres:16-alpine
container_name: postgres
ports:
- "5432:5432"
env_file:
- .env
volumes:
- e:/data:/var/lib/postgresql/data # Map e:\data to the PostgreSQL data folder
restart: always
networks:
mynetwork:
driver: bridge
Lägg märke till att här I' har specifikerat volymerna för att upprätthålla data för varje tjänst
volumes:
# This is where smtp4dev stores the database..
- e:/smtp4dev-data:/smtp4dev
volumes:
- e:/data:/var/lib/postgresql/data # Map e:\data to the PostgreSQL data folder
Detta gör att informationen förblir kvar mellan flödena av behållarna.
Jag specifikerar också env_file för postgres service. Detta är en file som innehåller miljövariabler som skickas till behållaren
Du kan se en lista av miljövariabler som kan skickas till PostgreSQL-containern här.
Här är ett exempel på .env file:
POSTGRES_DB=postgres
POSTGRES_USER=postgres
POSTGRES_PASSWORD=<somepassword>
Det konfigurerar en standarddatabas , lösenord och användare för PostgreSQL.
Här kör jag också SMTP, det här är ett bra verktyg för att testa e-postfunktionen i din application. här.
Om du tittar på min appsettings.Developmet.json file you'will see Jag har följande konfiguration för SMTP servern
"SmtpSettings":
{
"Server": "localhost",
"Port": 2525,
"SenderName": "Mostlylucid",
"Username": "",
"SenderEmail": "[email protected]",
"Password": "",
"EnableSSL": "false",
"EmailSendTry": 3,
"EmailSendFailed": "true",
"ToMail": "[email protected]",
"EmailSubject": "Mostlylucid"
}
Detta fungerar för SMTP4Dev och det gör att jag kan testa denna funktionalitet | ( | Jag kan skicka till vilken adress som helst |, | och se e-mailen i SMTP\ 4 | Dev gränssnittet på http |
När du är säker på att ' fungerar kan du testa den på en riktig SMTP server som GMAIL. här för hur man gör det
Att köra tjänsterna
Att köra servicen som definieras i devdeps-docker-compose.yml file, du behöver köra följande kommandot i samma katalog som den
docker compose -f .\devdeps-docker-compose.yml up -d
Kom ihåg att du bör köra den i början som detta; det här gör att du kan se konfigurationselementen som skickas in från .env file.
docker compose -f .\devdeps-docker-compose.yml config
Om du nu tittar på Docker Desktop så kan du se dessa tjänster som körs
