如何在 Docker Compose 中执行一次性命令
要设置一个命令只需要执行一次的 Docker 环境,例如填充数据库,建议的方法是使用入口点脚本。
入口点脚本
在容器映像中创建一个入口点脚本,通常命名为entrypoint.sh 。该脚本将检查数据库初始化是否已完成,如果未完成,则执行必要的操作。
以下是基于官方 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 "$@"
Docker Compose 配置
在 docker-compose.yml 文件中,在需要初始化的服务的入口点键中指定入口点脚本,如下所示:
services: my_project: build: . entrypoint: ["./entrypoint.sh"] ...
附加说明
以上是如何使用入口点脚本在 Docker Compose 中执行一次性命令?的详细内容。更多信息请关注PHP中文网其他相关文章!