gpt4 book ai didi

php - 从 Docker-compose php-apache exit with message exited with code 0

转载 作者:行者123 更新时间:2023-12-02 21:03:01 25 4
gpt4 key购买 nike

这个网站上有很多问题,但没有一个能给我解决方案。

我的 docker 文件:

from php:7.2-apache

copy php.ini "$PHP_INI_DIR/php.ini"

copy symfony/ /var/www/html/
run chmod -R o+w /var/www/html/var/cache /var/www/html/var/logs /var/www/html/var/sessions

run docker-php-ext-install pdo_mysql opcache

copy exec.php /var/www/html/

我的 docker-compose.yml 文件:
version: '3'
services:
web:
build: .
ports:
- "8082:80"
depends_on:
- mysql
command: ["php", "/var/www/html/exec.php"]
#command: ["echo", "hello"]
mysql:
image: "mysql:5"
environment:
MYSQL_ROOT_PASSWORD: my-secret-pw

问题来自 command key 。当我评论命令时 php-apache/ web运行。来自 docker ps我可以看到容器。但是当我添加一个 command php-apache/ web容器死于 php-apache_web_1 exited with code 0docker ps 中未显示而 mysql容器存在,我可以与之交互。

从此 answer有人说容器退出是因为命令完成了他的任务并退出了。但我不希望我的服务器退出或死亡/杀死。如何防止命令返回退出状态而不永远运行命令?

如果你对我为什么运行命令感到好奇,我的命令几乎完全按照解释 there .

已编辑:
我想要的是一个关于如何让我的 php apache 服务器运行并在 php apache 镜像构建后在 mysql 服务器中创建数据库的解决方案。

我根据建议的答案编辑了我的代码,但是 exec "$@"仍然以代码 0 退出:

docker 文件:
from php:7.2-apache
copy php.ini "$PHP_INI_DIR/php.ini"

copy symfony/ /var/www/html/
run chmod -R o+w /var/www/html/var/cache /var/www/html/var/logs /var/www/html/var/sessions

run docker-php-ext-install pdo_mysql opcache

copy exec.php /var/www/html/

#using an sh script
copy run.sh /var/www/html/
run chmod u+x,g+x /var/www/html/run.sh

docker-compose.yml 文件:
version: '3'
services:
web:
build: .
ports:
- "8082:80"
depends_on:
- mysql
command: ["/var/www/html/run.sh"]
mysql:
image: "mysql:5"
environment:
MYSQL_ROOT_PASSWORD: my-secret-pw

run.sh 脚本:
#!/bin/sh
set -e

# Execute your custom scripts
php -f /var/www/html/exec.php

#End with running the original command
exec "$@"

然后运行我在终端中执行的脚本:
docker-compose down
docker-compose build
docker-compose up

最佳答案

为了在容器开始执行其命令之前运行命令,您可以使用自定义入口点。

#!/bin/sh
set -e

# Execute your custom scripts
php -f /var/www/html/exec.php

#End with running the original command
exec "$@"

欲了解更多信息,请查看 official documentation for entrypoint

关于php - 从 Docker-compose php-apache exit with message exited with code 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59598220/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com