So führen Sie einmalige Befehle in Docker Compose aus
Um eine Docker-Umgebung einzurichten, in der ein Befehl nur einmal ausgeführt werden muss, B. das Auffüllen einer Datenbank, ist ein empfohlener Ansatz die Verwendung eines Einstiegspunktskripts.
Entrypoint Skript
Erstellen Sie ein Einstiegspunktskript in Ihrem Container-Image, normalerweise mit dem Namen „entrypoint.sh“. Dieses Skript prüft, ob die Datenbankinitialisierung abgeschlossen wurde, und führt andernfalls die erforderlichen Aktionen aus.
Hier ist ein Beispiel für ein Einstiegspunktskript basierend auf dem offiziellen WordPress-Image:
#!/bin/bash set -e # Function to check if database initialization is needed is_init_needed() { # Insert database initialization check logic here return 0 } # Check if initialization is needed if is_init_needed; then # Perform database initialization echo "Initializing database..." /usr/bin/mysql -u "root" -p"$MYSQL_ROOT_PASSWORD" -h "mysql" < /usr/local/init.sql echo "Database initialized successfully." fi # Start the application exec "$@"
Docker Compose-Konfiguration
Geben Sie in Ihrer docker-compose.yml-Datei das Einstiegspunktskript im Einstiegspunktschlüssel für den Dienst an, der erfordert eine Initialisierung wie folgt:
services: my_project: build: . entrypoint: ["./entrypoint.sh"] ...
Zusätzliche Hinweise
Das obige ist der detaillierte Inhalt vonWie führe ich einmalige Befehle in Docker Compose mit Entrypoint-Skripten aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!