docker compose在运行入口点后保持容器运行

docker compose在运行入口点后保持容器运行,docker,build,docker-compose,Docker,Build,Docker Compose,我的docker-compose.yml My.docker/app/sh/entry-point.sh 我按命令建造: docker compose-f.docker/docker-compose-prod.yml up-d--build 所有容器都已成功构建,但最后正在运行容器app_prod(.docker/app/sh/entry point.sh)的入口点脚本。入口点脚本也已成功处理,但在执行后,入口点脚本已停止 这是保持容器运行的一种方法吗 从定义上说,谢谢,否:一旦入口点退出,容器

我的docker-compose.yml

My.docker/app/sh/entry-point.sh

我按命令建造:

docker compose-f.docker/docker-compose-prod.yml up-d--build

所有容器都已成功构建,但最后正在运行容器app_prod(.docker/app/sh/entry point.sh)的入口点脚本。入口点脚本也已成功处理,但在执行后,入口点脚本已停止

这是保持容器运行的一种方法吗


从定义上说,谢谢,否:一旦入口点退出,容器就会退出

您的入口点是一个以
exec“$@”
(好!)结尾的shell脚本,这意味着,在它成功等待数据库启动后,它将以
命令:
的形式运行在
docker compose.yml
中传递的任何内容。(请注意,如果您在
docker compose.yml
中声明
入口点:
,那么您只需要一个启动服务的
命令:
,您应该被设置

entrypoint: .docker/app/sh/entry-point.sh
command: php-fpm
#!/usr/bin/env bash
set -e # exit script if any command fails (non-zero value)
echo Waiting for redis service start...;

while ! nc -z redis 6379;
do
sleep 1;
done;

echo Waiting for mysql service start...;

while ! nc -z mysql 3306;
do
sleep 1;
done;
echo Connected!;

php www/index.php orm:schema-tool:update --force

exec "$@"
entrypoint: .docker/app/sh/entry-point.sh
command: php-fpm