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

怎么了,高山边缘的问题?

看起来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,它将使所有现有的代码都能工作。

最新更新