自定义Dockerfile构建Wordpress容器启动退出 用镜像正常如何解决?
问题原因
- Dockerfile存在多阶段构建误用:你写了两个
FROM指令,Docker多阶段构建规则下,最终生成的镜像只会保留最后一个FROM之后的所有内容,所以你构建出来的镜像根本不是Wordpress运行环境,只是纯净的php:7.3镜像,缺失了官方Wordpress镜像自带的Apache服务、Wordpress程序文件、配套启动脚本。 - 纯净PHP镜像的默认启动命令为
docker-php-entrypoint php -a,属于交互式命令,后台运行时没有输入流就会直接正常退出,因此容器状态显示为Exit 0。
修复方案
直接删除多余的FROM php:7.3行,在官方Wordpress镜像基础上直接安装soap扩展即可。官方Wordpress镜像本身就是基于PHP官方镜像构建,原生支持docker-php-ext-install等扩展安装命令,修改后的Dockerfile如下:
FROM "wordpress:${WP_VERSION:-latest}" RUN apt-get update -y \ && apt-get install -y \ libxml2-dev \ vim \ && apt-get clean -y \ && docker-php-ext-install soap \ && docker-php-ext-enable soap
修改完成后执行以下命令重新构建启动容器即可恢复正常:
docker-compose build --no-cache wordpress docker-compose up -d
内容的提问来源于stack exchange,提问作者MikeiLL
相关产品推荐
相关产品推荐

