php:latest Docker容器退出码0问题排查,需用最新稳定PHP版本
问题原因及解决方案
为什么php:latest容器会退出?
php:latest镜像默认是CLI版本,它的默认启动命令是交互式PHP Shell(php -a),但Docker容器默认是非交互式环境,这个命令会直接执行完成并退出,因此容器以退出码0正常终止。php:7.4-fpm-alpine是FPM版本,它的默认启动命令是前台运行php-fpm服务,这个服务会持续占用前台进程,所以容器能保持运行状态。
解决方案
如果你想使用最新稳定版的PHP FPM(和之前的7.4-fpm-alpine功能一致),无需指定具体版本号,只需将镜像改为php:fpm(标准版本)或php:fpm-alpine(轻量Alpine版本)。修改后的docker-compose.yml如下:
version: '3.9' services: nginx: image: nginx:latest container_name: nginx ports: - "80:80" - "70:70" volumes: - ./config/nginx/conf.d:/etc/nginx/conf.d/:delegated - ./www:/var/www/html:delegated php: image: php:fpm-alpine # 也可使用 php:fpm 标准版本 container_name: php volumes: - ./www:/var/www/html:delegated
这样容器会启动最新稳定版的PHP FPM服务,保持运行状态,同时满足你不指定具体版本号的需求。
内容的提问来源于stack exchange,提问作者mmik
相关产品推荐
相关产品推荐

