[英]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.