You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于circleci/php:7.3-cli-node-browsers构建Docker镜像启动退出问题排查

Docker镜像启动退出问题排查与解决方案
  • 基础镜像不匹配问题
    你选择的circleci/php:7.3-cli-node-browsers是PHP CLI版本的镜像,默认没有内置、也没有预装Apache服务。你在Dockerfile中复制了Apache vhost配置,但没有添加Apache的安装指令,无法启动Web服务作为常驻进程,容器执行完入口脚本后就会自动退出。如果需要使用Apache运行Laravel,要么在apt安装步骤中新增apache2相关安装包,要么直接更换为php:7.3-apache这类带Apache运行环境的基础镜像,再额外安装node、浏览器等你需要的依赖。

  • 入口脚本无常驻进程问题
    你自定义了docker-entrypoint.sh作为容器入口,需要确保脚本最后执行的是前台驻留的进程,不能是后台启动的服务。比如启动Apache要使用apache2-foreground命令,用PHP内置服务的话要执行php artisan serve --host 0.0.0.0 --port 80,不能加&放到后台运行,否则脚本执行完成后容器会直接退出。

  • 依赖服务连通失败问题
    你的项目依赖Redis服务,首先要确认docker-compose.yml中已经配置了Redis服务容器,其次Laravel的.env配置中Redis的host要填写docker-compose中Redis服务的服务名,不能写127.0.0.1,否则服务启动时连不上Redis会直接报错退出。你可以执行docker logs <容器ID/容器名>命令查看容器启动日志,快速定位具体报错原因。

  • 挂载目录权限覆盖问题
    如果你的docker-compose.yml中配置了本地项目目录挂载到容器内的/var/www/html路径,容器启动时本地目录的权限会覆盖Dockerfile中设置的777权限,导致Laravel无法写入storage、bootstrap/cache目录,启动报错后退出。这种情况需要在入口脚本开头额外添加一次权限设置指令,或者调整本地目录的权限配置。

内容的提问来源于stack exchange,提问作者Juan Diaz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 17:15:05