简体   繁体   中英

alpine edge /bin/sh: php: not found

I use this docker file and it worked before, but not today

FROM alpine:edge

LABEL maintainer="Vincent Composieux <vincent.composieux@gmail.com>"

RUN apk update && apk upgrade && \
    apk add --update --no-cache --update-cache vips-dev fftw-dev build-base \
    --repository https://alpine.global.ssl.fastly.net/alpine/v3.10/community/ \
    --repository https://alpine.global.ssl.fastly.net/alpine/v3.10/main

RUN apk add --update --no-cache \
    coreutils \
    php7 \
    php7-fpm \
    php7-apcu \
    php7-ctype \
    php7-curl \
    php7-dom \
    php7-gd \
    php7-iconv \
    php7-json \
    php7-intl \
    php7-mcrypt \
    php7-fileinfo\
    php7-mbstring \
    php7-opcache \
    php7-openssl \
    php7-pdo \
    php7-pdo_mysql \
    php7-mysqli \
    php7-pdo_pgsql \
    php7-pgsql \
    php7-xml \
    php7-zlib \
    php7-phar \
    php7-tokenizer \
    php7-session \
    php7-simplexml \
    php7-xdebug \
    php7-zip \
    php7-xmlwriter \
    make \
    curl \
    zlib-dev \
    libxml2-dev \
    rabbitmq-c-dev \
    oniguruma-dev \
    php7-pecl-amqp \
    php7-amqp \
    php7-redis \
    openrc --no-cache \
    supervisor \
    php7-sockets

RUN apk add --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing/ php7-pecl-mongodb

COPY docker-entrypoint.sh /opt/docker-entrypoint.sh

RUN echo "$(curl -sS https://composer.github.io/installer.sig) -" > composer-setup.php.sig \
        && curl -sS https://getcomposer.org/installer | tee composer-setup.php | sha384sum -c composer-setup.php.sig \
        && php composer-setup.php && rm composer-setup.php* \
        && chmod +x composer.phar && mv composer.phar /usr/bin/composer && chmod +x /opt/docker-entrypoint.sh

COPY symfony.ini /etc/php7/conf.d/
COPY symfony.ini /etc/php7/cli/conf.d/
COPY xdebug.ini  /etc/php7/conf.d/

COPY symfony.pool.conf /etc/php7/php-fpm.d/

COPY ./cron /opt/cron
RUN crontab -u root /opt/cron

WORKDIR /var/www/symfony

ENTRYPOINT ["ash", "/opt/docker-entrypoint.sh"]

EXPOSE 9001

I faced with that

Step 7/16 : RUN echo "$(curl -sS https://composer.github.io/installer.sig) -" > composer-setup.php.sig         && curl -sS https://getcomposer.org/installer | tee composer-setup.php | sha384sum -c composer-setup.php.sig         && php composer-setup.php && rm composer-setup.php*         && chmod +x composer.phar && mv composer.phar /usr/bin/composer && chmod +x /opt/docker-entrypoint.sh
 ---> Running in fb67f5786afb
-: OK
/bin/sh: php: not found
ERROR: Service 'php-worker-company' failed to build: The command '/bin/sh -c echo "$(curl -sS https://composer.github.io/installer.sig) -" > composer-setup.php.sig         && curl -sS https://getcomposer.org/installer | tee composer-setup.php | sha384sum -c composer-setup.php.sig         && php composer-setup.php && rm composer-setup.php*         && chmod +x composer.phar && mv composer.phar /usr/bin/composer && chmod +x /opt/docker-entrypoint.sh' returned a non-zero code: 127

what is goin on, problem with alpine edge?

It looks like the php7 used to be the default php version and it had the php alias. But yesterday they switched the default to php8, so now you only get the php alias if you install php8.

You can either fix it by specifying php7 instead of php like this

RUN echo "$(curl -sS https://composer.github.io/installer.sig) -" > composer-setup.php.sig \
        && curl -sS https://getcomposer.org/installer | tee composer-setup.php | sha384sum -c composer-setup.php.sig \
        && php7 composer-setup.php && rm composer-setup.php* \
        && chmod +x composer.phar && mv composer.phar /usr/bin/composer && chmod +x /opt/docker-entrypoint.sh

Or you can create a symbolic link for php like this (last line)

RUN apk add --update --no-cache \
    coreutils \
    php7 \
    php7-fpm \
    php7-apcu \
    php7-ctype \
    php7-curl \
    php7-dom \
    php7-gd \
    php7-iconv \
    php7-json \
    php7-intl \
    php7-mcrypt \
    php7-fileinfo\
    php7-mbstring \
    php7-opcache \
    php7-openssl \
    php7-pdo \
    php7-pdo_mysql \
    php7-mysqli \
    php7-pdo_pgsql \
    php7-pgsql \
    php7-xml \
    php7-zlib \
    php7-phar \
    php7-tokenizer \
    php7-session \
    php7-simplexml \
    php7-xdebug \
    php7-zip \
    php7-xmlwriter \
    make \
    curl \
    zlib-dev \
    libxml2-dev \
    rabbitmq-c-dev \
    oniguruma-dev \
    php7-pecl-amqp \
    php7-amqp \
    php7-redis \
    openrc --no-cache \
    supervisor \
    php7-sockets \
    && ln -s /usr/bin/php7 /usr/bin/php

The latter is probably the best, since it'll make all your existing code work if it relies on using php .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM