我在两台机器上运行相同的Docker构建:
在Ubuntu中一切正常但这是我在Docker构建期间在Debian中遇到的问题:
The command '/bin/sh -c php7 /installer.php --install-dir=/usr/bin --filename=composer' returned a non-zero code: 139
这是我的Dockerfile:
FROM nginx:1.14-alpine
...
...
RUN curl https://getcomposer.org/installer -o /installer.php
RUN php7 /installer.php --install-dir=/usr/bin --filename=composer
...
...
在Linux中,错误代码139表示分段错误。我在Ubuntu(Docker版本18.05.0-ce)上的Debian(Docker版本18.06.2-ce)和16147116 kB上有15437156 kB的内存。
注意:问题发生在构建docker build ..
期间。
你知道怎么在Debian上解决这个问题吗?
我正在升级一些版本并开始向你发出类似的问题,谷歌搜索并在这里找到你的帖子。我得到了:
RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && php composer-setup.php && php -r "unlink('composer-setup.php');" && mv composer.phar /usr/local/bin/composer
---> Running in e73735530b5d
All settings correct for using Composer
Segmentation fault
经过一些测试后,我发现使用FROM alpine:3.9
每次都会导致Seg故障,但是将我的Alpine版本降级为FROM alpine:3.8
会阻止它发生。
不知道为什么,但看起来在最新版本的Alpine中有一些问题,因为我也没有在Debian,Debian Slim或Ubuntu 18:04中得到这个问题。