Back to "Gebruik van Docker Compose voor ontwikkeling afhankelijkheden"

This is a viewer only at the moment see the article on how this works.

To update the preview hit Ctrl-Alt-R (or ⌘-Alt-R on Mac) or Enter to refresh. The Save icon lets you save the markdown file to disk

This is a preview from the server running through my markdig pipeline

Docker

Gebruik van Docker Compose voor ontwikkeling afhankelijkheden

Friday, 09 August 2024

Inleiding

Bij het ontwikkelen van software draaien we traditioneel een database, een berichtenwachtrij, een cache en misschien een paar andere diensten. Dit kan een pijn zijn om te beheren, vooral als je werkt aan meerdere projecten. Docker Compose is een hulpmiddel waarmee u multi-container Docker toepassingen te definiëren en uit te voeren. Het is een geweldige manier om je ontwikkeling afhankelijkheden te beheren.

In dit bericht, Ik zal u laten zien hoe u Docker Compose gebruiken om uw ontwikkeling afhankelijkheden te beheren.

Vereisten

Eerst moet je docker desktop installeren op welk platform je ook gebruikt. U kunt het downloaden van Hier..

OPMERKING: Ik heb gevonden dat op Windows je echt nodig hebt om Docker Desktop installer als admin te draaien om ervoor te zorgen dat het correct installeert.

Aanmaken van een Docker-compose-bestand

Docker Compose gebruikt een YAML-bestand om de diensten te definiëren die u wilt uitvoeren. Hier is een voorbeeld van een simpele devdeps-docker-compose.yml bestand dat een databasedienst en een e-maildienst definieert:

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

Notitie hier Ik heb opgegeven volumes voor het aanhouden van de gegevens voor elke dienst, hier heb ik gespecificeerd

    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

Dit zorgt ervoor dat de gegevens tussen de ritten van de containers blijven bestaan.

Ik geef ook een env_file voor de postgres service. Dit is een bestand dat omgevingsvariabelen bevat die aan de container worden doorgegeven. U kunt een lijst zien van omgevingsvariabelen die kunnen worden doorgegeven aan de PostgreSQL container Hier.. Hier is een voorbeeld van een .env bestand:

POSTGRES_DB=postgres
POSTGRES_USER=postgres
POSTGRES_PASSWORD=<somepassword>

Dit configureert een standaard database, wachtwoord en gebruiker voor PostgreSQL.

Hier heb ik ook de SMTP4Dev service, dit is een geweldige tool voor het testen van e-mail functionaliteit in uw toepassing. U kunt er meer informatie over vinden Hier..

Als je kijkt in mijn appsettings.Developmet.json file you'll see I have the following configuration for the SMTP server:

  "SmtpSettings":
{
"Server": "localhost",
"Port": 2525,
"SenderName": "Mostlylucid",
"Username": "",
"SenderEmail": "[email protected]",
"Password": "",
"EnableSSL": "false",
"EmailSendTry": 3,
"EmailSendFailed": "true",
"ToMail": "[email protected]",
"EmailSubject": "Mostlylucid"

}

Dit werkt voor SMTP4Dev en het stelt me in staat om deze functionaliteit te testen (ik kan sturen naar elk adres, en zie de e-mail in de SMTP4Dev interface op http://localhost:3002/).

Zodra je zeker bent dat het allemaal werkt kun je testen op een echte SMTP-server zoals GMAIL (bijv., zie Hier. voor hoe dat te doen)

Het uitvoeren van de diensten

Voor het uitvoeren van de diensten gedefinieerd in de devdeps-docker-compose.yml bestand, u moet het volgende commando uitvoeren in dezelfde map als het bestand:

docker compose -f .\devdeps-docker-compose.yml up -d

Merk op dat je het in eerste instantie op deze manier moet uitvoeren; dit zorgt ervoor dat je de config elementen kunt zien die zijn doorgegeven vanuit de .env bestand.

docker compose -f .\devdeps-docker-compose.yml config

Nu als je kijkt in Docker Desktop kunt u deze diensten draaiende zien

Docker-bureaublad

logo

©2024 Scott Galloway