Alpine-Docker:返回了非零代码:139

时间:2019-02-12 13:24:52

标签: docker debian alpine

我在两台机器上运行相同的Docker构建:

  • Ubuntu 16.04
  • Debian 9.7

在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上解决此问题吗?

2 个答案:

答案 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中也没有遇到此问题。