簡體   English   中英

高山邊緣/bin/sh:php:未找到

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

我使用這個 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

我遇到了那個

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

怎么回事,alpine edge 有問題?

看起來 php7 曾經是默認的 php 版本,它有 php 別名。 但是昨天他們將默認設置切換為 php8,所以現在如果你安裝 php8,你只會得到 php 別名。

您可以像這樣指定 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

或者您可以像這樣為 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

后者可能是最好的,因為如果它依賴於使用php ,它將使您現有的所有代碼都能正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM