如何解决Docker-compose:防止PECL安装停止构建过程
所以我有2个Dockerfile来构建我的容器。第一个文件用于构建我的“主要”(生产)容器,第二个文件扩展第一个文件(通过From指令),并添加一些开发和测试依赖项。
当前,我唯一的测试依赖项是Xdebug。我通过PECL使用RUN pecl install xdebug && docker-php-ext-enable xdebug
重建图像时,似乎并没有从头开始重建所有图像,因此出现错误pecl/xdebug is already installed and is the same as the released version 2.9.8 install failed ERROR: Service 'webapi' failed to build : The command '/bin/sh -c pecl install xdebug && docker-php-ext-enable xdebug' returned a non-zero code: 1
所以,好的,它失败了,但是我仍然以Xdebug安装结束,因此我的映像可以正常工作。但这会停止构建。我不想。
我见过RUN command; exit 0
的把戏,但是,正如某人提到的那样,它将使任何实际错误(例如“对不起,服务器无法访问,无法下载Xdebug”)保持沉默,因此对我来说这不是一个可行的选择用于生产。
Xdebug也无法在apt-get或docker-php-ext-install上使用。我坚持使用PECL。
您知道执行“如果可以的话安装,否则就可以滚动”之类的任何选项(例如某些隐藏的参数)吗?
此致
解决方法
您可以先检查是否已安装Xdebug:
bash -c '[[ -z "$(pecl list | grep xdebug)" ]] && (pecl install xdebug && docker-php-ext-enable xdebug)'
但是说实话,“它不会从头开始重建所有内容”听起来很奇怪,您可能应该调试Dockerfile。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。