hyperf / hyperf

🚀 A coroutine framework that focuses on hyperspeed and flexibility. Building microservice or middleware with ease.

Home Page:https://www.hyperf.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[ERROR] DI Reflection Manager collecting class reflections failed. [BUG]

JUYAFEI opened this issue · comments

[ERROR] DI Reflection Manager collecting class reflections failed.
File: /opt/www/vendor/hyperf/di/src/AbstractCallableDefinitionCollector.php.
Exception: Syntax error, unexpected T_END_HEREDOC on line 1

基于hyperf/hyperf:8.3-alpine-v3.19-base镜像运行会抛出这个异常,而自己打包的8.3.6版本没问题

FROM hyperf/hyperf:8.3-alpine-v3.19

ARG timezone
ARG PHP_BUILD_VERSION=83

ENV TIMEZONE=${timezone:-"Asia/Shanghai"}
APP_ENV=prod
SCAN_CACHEABLE=(true)
PHPIZE_DEPS="autoconf dpkg-dev dpkg file g++ gcc libc-dev make php${PHP_BUILD_VERSION}-dev php${PHP_BUILD_VERSION}-pear"

#COPY tokenserver.so /usr/lib/php83/modules/tokenserver.so

update

RUN set -ex
&& apk update
&& apk add --no-cache yaml-dev
&& apk add --no-cache $PHPIZE_DEPS
&& cd /tmp
&& ln -s /usr/bin/phpize${PHP_BUILD_VERSION} /usr/local/bin/phpize
&& ln -s /usr/bin/php-config${PHP_BUILD_VERSION} /usr/local/bin/php-config
&& curl -SL "https://pecl.php.net/get/yaml" -o yaml.tar.gz
&& tar -xf yaml.tar.gz -C /tmp
&& cd /tmp/yaml-*
&& phpize
&& ./configure
&& make -s -j$(nproc) && make install
&& echo "extension=yaml.so" > /etc/php${PHP_BUILD_VERSION}/conf.d/00_yaml.ini
&& php -v
&& php -m
&& php --ri swoole
# ---------- some config ----------
&& cd /etc/php*
# - config PHP
&& {
echo "upload_max_filesize=128M";
echo "post_max_size=128M";
echo "memory_limit=1G";
echo "date.timezone=${TIMEZONE}";
echo "extension = tokenserver.so" > /etc/php${PHP_BUILD_VERSION}/conf.d/00_tokenserver.ini;
} | tee conf.d/99_overrides.ini
# - config timezone
&& ln -sf /usr/share/zoneinfo/${TIMEZONE} /etc/localtime
&& echo "${TIMEZONE}" > /etc/timezone
# ---------- clear works ----------
&& rm -rf /var/cache/apk/* /tmp/* /usr/share/man
&& echo -e "\033[42;37m Build Completed :).\033[0m\n"

WORKDIR /opt/www

Composer Cache

COPY ./composer.* /opt/www/

RUN composer install --no-dev --no-scripts

#COPY . /opt/www
#RUN composer install --no-dev -o && php bin/hyperf.php

EXPOSE 9501

hyperf/hyperf:8.3-alpine-v3.19-swoole-5.1.3

用这个测试看看

hyperf/hyperf:8.3-alpine-v3.19-swoole-5.1.3

用这个测试看看

依旧报错

换这个hyperf/hyperf:8.3-alpine-v3.19-swoole-slim-v5.1.1 构建就不报错了。
原先用的是 8.3-alpine-v3.19-swoole-slim-v5.1.2 一直没问题。重新构建容器就开始报错了
能说下原因么,生产事故,哈哈哈

It is impossible via apk, as the Alpine Linux team are not keeping "older versions" in their current repositories (as stated here (gitlab.alpinelinux.org) and here (stschindler.medium.com))
安装其他扩展时:apk add php83-dev是 安装的事目前 php8.3.7版本 ,所以解析报错

碰到同样的错误了,云效流水线报这个错,在本地试了下也是一样,咋解决呢?