NOTE: Apart from
(and even then it's questionable, I'm Scottish). These are machine translated in languages I don't read. If they're terrible please contact me.
You can see how this translation was done in this article.
Friday, 09 August 2024
//Less than a minute
Bei der Entwicklung von Software würden wir traditionell eine Datenbank, eine Nachrichten-Warteschlange, einen Cache und vielleicht ein paar andere Dienste spinnen. Dies kann ein Schmerz zu verwalten, vor allem, wenn Sie an mehreren Projekten arbeiten. Docker Compose ist ein Tool, mit dem Sie Multi-Container Docker-Anwendungen definieren und ausführen können. Es ist ein guter Weg, um Ihre Entwicklungsabhängigkeiten zu verwalten.
In diesem Beitrag werde ich Ihnen zeigen, wie Sie Docker Compose verwenden, um Ihre Entwicklungsabhängigkeiten zu verwalten.
Zuerst müssen Sie Docker-Desktop auf welcher Plattform Sie auch immer installieren. Sie können es herunterladen von Hierher.
HINWEIS: Ich habe festgestellt, dass Sie unter Windows wirklich Docker Desktop Installer als Admin ausführen müssen, um sicherzustellen, dass es korrekt installiert.
Docker Compose verwendet eine YAML-Datei, um die Dienste zu definieren, die Sie ausführen möchten. Hier ist ein Beispiel für eine einfache devdeps-docker-compose.yml
Datei, die einen Datenbankdienst und einen E-Mail-Dienst definiert:
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
Anmerkung hier Ich habe Volumen für die Fortdauer der Daten für jeden Dienst angegeben, hier habe ich angegeben
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
Dadurch wird sichergestellt, dass die Daten zwischen den Durchläufen der Container bestehen bleiben.
Ich spezifizieren auch eine env_file
für die postgres
............................................................................................................................................ Dies ist eine Datei, die Umgebungsvariablen enthält, die an den Container übergeben werden.
Sie können eine Liste von Umgebungsvariablen sehen, die an den PostgreSQL-Container übergeben werden können Hierher.
Hier ist ein Beispiel für eine .env
Datei:
POSTGRES_DB=postgres
POSTGRES_USER=postgres
POSTGRES_PASSWORD=<somepassword>
Dies konfiguriert eine Standarddatenbank, Passwort und Benutzer für PostgreSQL.
Hier laufe ich auch den SMTP4Dev Service, das ist ein tolles Tool zum Testen von E-Mail-Funktionen in Ihrer Anwendung. Mehr Informationen dazu finden Sie hier Hierher.
Wenn du in meine appsettings.Developmet.json
Datei, die Sie sehen werden Ich habe die folgende Konfiguration für den 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"
}
Dies funktioniert für SMTP4Dev und es ermöglicht mir, diese Funktionalität zu testen (Ich kann an jede Adresse senden, und sehen Sie die E-Mail in der SMTP4Dev-Schnittstelle unter http://localhost:3002/).
Sobald Sie sicher sind, dass alles funktioniert, können Sie auf einem echten SMTP-Server wie GMAIL testen (z.B. siehe Hierher für die Art und Weise, wie das zu tun ist)
Um die in der devdeps-docker-compose.yml
file, müssen Sie den folgenden Befehl in das gleiche Verzeichnis wie die Datei ausführen:
docker compose -f .\devdeps-docker-compose.yml up -d
Beachten Sie, dass Sie es zunächst so ausführen sollten; dies stellt sicher, dass Sie die aus der Konfiguration übergebenen Elemente sehen können. .env
..............................................................................................................................
docker compose -f .\devdeps-docker-compose.yml config
Wenn Sie jetzt in Docker Desktop suchen, können Sie diese Dienste laufen sehen