我在两台机器上运行相同的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指示分段错误。 我在Debian(Docker版本18.06.2-ce)上的内存为15437156 kB,在Ubuntu(Docker版本18.05.0-ce)上的内存为16147116 kB。
注意:问题在构建docker build ..
期间发生。
您知道如何在Debian上解决此问题吗?
答案 0 :(得分:3)
我正面临问题
命令'/ bin / sh -c rpm -ivh jdk-8u172-linux-x64.rpm'返回非零代码:139
然后我切换为使用旧版hyper-V而不是docker引擎提供的WSL 2,然后一切正常
答案 1 :(得分:0)
我正在升级某些版本,并开始遇到与您类似的问题,在Google上搜索并找到了您的帖子。我得到了:
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中也没有遇到此问题。