使用curl进行Composer安装在Docker中不起作用

时间:2018-10-04 09:55:45

标签: docker dockerfile alpine

以下是我用于创建docker映像的Dockerfile。效果很好,但是今天我尝试以--no-cache模式构建映像,因为我遇到了问题。错误消息的详细信息在下面给出。

我再说一遍,它工作正常,但现在遇到错误。尝试搜索很少的解决方案,但没有任何效果。

特别是此命令不起作用 curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

FROM alpine:edge

MAINTAINER SamratShakya <samrat.shakya@nepallink.net>

# Install packages
RUN apk --update add \
        curl \
        php7 \
        php7-dom \
        php7-fpm \
        php7-mbstring \
        php7-mcrypt \
        php7-opcache \
        php7-pdo \
        php7-pdo_mysql \
        php7-pdo_pgsql \
        php7-mysqli \
        php7-xml \
        php7-simplexml \
        php7-common \
        php-simplexml \
        php7-phar \
        php7-openssl \
        php7-json \
        php7-ctype \
        php7-session \
        php7-tokenizer \
        php7-xmlwriter \
        nodejs \
        git \
        ca-certificates \
        nginx \
        wget \
        libcurl \
        php7-curl \
        supervisor \

        && rm -rf /var/cache/apk/*


RUN curl -sS https://getcomposer.org/installer | php \
  --install-dir=/usr/bin --filename=composer

这是我在詹金斯日志中看到的错误消息。

错误消息:

Step 4/21 : RUN curl -sS https://getcomposer.org/installer | php   --install-dir=/usr/bin --filename=composer

 ---> Running in f79b6610ae38

[91mError relocating /usr/bin/php: explicit_bzero: symbol not found
[0m[91mcurl: (23) Failed writing body (0 != 16133)

[0mThe command '/bin/sh -c curl -sS https://getcomposer.org/installer | php   --install-dir=/usr/bin --filename=composer' returned a non-zero code: 127
PROBLEM IN IMAGE BUILD !!
Build step 'Execute shell' marked build as failure
Finished: FAILURE

2 个答案:

答案 0 :(得分:0)

再试一次:

RUN curl -sS https://getcomposer.org/installer | \
  php -- --install-dir=/usr/bin --filename=composer

答案 1 :(得分:0)

对我来说什么都没有,所以作为一种解决方法,我将作曲家添加为多阶段图像。我单独添加了作曲家,并将其作为波纹管复制到了我的高山图像中。

FROM composer:1.5.1 AS composer

FROM alpine:edge 
#copying composer from another image and making it work
COPY --from=php-composer /usr/bin/composer /usr/bin/composer
RUN  ln -s /usr/bin/php7 /usr/bin/php

关于我遇到的问题。我无法找出确切原因