Att använda Docker Compose för utvecklings beroenden (Svenska (Swedish))

Att använda Docker Compose för utvecklings beroenden

Friday, 09 August 2024

//

3 minute read

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

Dockarens dator

Finding related posts...
logo

© 2026 Scott Galloway — Unlicense — All content and source code on this site is free to use, copy, modify, and sell.