我使用这个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
,它将使所有现有的代码都能工作。