简体   繁体   English

高山边缘/bin/sh:php:未找到

[英]alpine edge /bin/sh: php: not found

I use this docker file and it worked before, but not today我使用这个 docker 文件,它以前工作过,但今天不行

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?怎么回事,alpine edge 有问题?

It looks like the php7 used to be the default php version and it had the php alias.看起来 php7 曾经是默认的 php 版本,它有 php 别名。 But yesterday they switched the default to php8, so now you only get the php alias if you install php8.但是昨天他们将默认设置切换为 php8,所以现在如果你安装 php8,你只会得到 php 别名。

You can either fix it by specifying php7 instead of php like this您可以像这样指定 php7 而不是 php 来修复它

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)或者您可以像这样为 php 创建一个符号链接(最后一行)

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 .后者可能是最好的,因为如果它依赖于使用php ,它将使您现有的所有代码都能正常工作。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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