Comment exécuter des commandes uniques dans Docker Compose
Pour configurer un environnement Docker dans lequel une commande ne doit être exécutée qu'une seule fois, comme le remplissage d'une base de données, une approche recommandée consiste à utiliser un script de point d'entrée.
Entrypoint Script
Créez un script de point d'entrée dans votre image de conteneur, généralement nommé Entrypoint.sh. Ce script vérifiera si l'initialisation de la base de données est terminée et, dans le cas contraire, effectuera les actions nécessaires.
Voici un exemple de script de point d'entrée basé sur l'image officielle de WordPress :
#!/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 "$@"
Configuration de Docker Compose
Dans votre fichier docker-compose.yml, spécifiez le script de point d'entrée dans la clé de point d'entrée du service qui nécessite une initialisation, comme ceci :
services: my_project: build: . entrypoint: ["./entrypoint.sh"] ...
Notes supplémentaires
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!