首页
下载
文档
社区
视频
捐赠
源代码
赞助商
AOT 编译器
AI 助理
商业产品
PHP AOT 原生编译器
Swoole-Compiler 代码加密器
CRMEB 新零售社交电商系统
登录
注册
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
Dockerfile 文件: docker build制作镜像时,出现pecl not found
### 问题描述 hyperf项目制作自定义镜像时,尝试pecl install rdkafka 安装rdkafka扩展时出现pecl not found ### Swoole版本,PHP版本,以及操作系统版本信息 - 宿主机系统:centos - 宿主机没有php环境 ### 相关代码 ```dockerfile # Default Dockerfile # # @link https://www.hyperf.io # @document https://doc.hyperf.io # @contact group@hyperf.io # @license https://github.com/hyperf-cloud/hyperf/blob/master/LICENSE FROM hyperf/hyperf:7.2-alpine-cli-4.4.5 LABEL maintainer="Hyperf Developers <group@hyperf.io>" version="1.0" license="MIT" ## # ---------- env settings ---------- ## # --build-arg timezone=Asia/Shanghai ARG timezone ENV TIMEZONE=${timezone:-"Asia/Shanghai"} \ APP_ENV=prod \ SCAN_CACHEABLE=(true) RUN apk add --no-cache librdkafka-dev \ && pecl install rdkafka \ && echo "extension=rdkafka.so" > /etc/php7/conf.d/rdkafka.ini RUN set -ex \ && apk update \ # install composer && cd /tmp \ && wget https://github.com/composer/composer/releases/download/1.8.6/composer.phar \ && chmod u+x composer.phar \ && mv composer.phar /usr/local/bin/composer \ # show php version and extensions && php -v \ && php -m \ # ---------- some config ---------- && cd /etc/php7 \ # - config PHP && { \ echo "upload_max_filesize=100M"; \ echo "post_max_size=108M"; \ echo "memory_limit=1024M"; \ echo "date.timezone=${TIMEZONE}"; \ } | 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" COPY . /var/www/userCenter WORKDIR /var/www/userCenter RUN composer install --no-dev \ && composer dump-autoload -o \ && php bin/hyperf.php EXPOSE 9501 ENTRYPOINT ["php", "bin/hyperf.php", "start"] ``` ### 错误出现 ``` Step 1/11 : FROM hyperf/hyperf:7.2-alpine-cli-4.4.5 Trying to pull repository docker.io/hyperf/hyperf ... 7.2-alpine-cli-4.4.5: Pulling from docker.io/hyperf/hyperf e7c96db7181b: Already exists 7d4cb5b944fe: Pull complete 3adc24a17b24: Pull complete Digest: sha256:3947dbe4d80f8a0b24fed89e2f781245ee8249613bce9a91144e53a683546431 Status: Downloaded newer image for docker.io/hyperf/hyperf:7.2-alpine-cli-4.4.5 ---> 5da4aadf6bfc Step 2/11 : LABEL maintainer "Hyperf Developers <group@hyperf.io>" version "1.0" license "MIT" ---> Running in f81fc18ae765 ---> bdaa1eb023db Removing intermediate container f81fc18ae765 Step 3/11 : ARG timezone ---> Running in 14cfff9a9d80 ---> 209acf5b1f47 Removing intermediate container 14cfff9a9d80 Step 4/11 : ENV TIMEZONE ${timezone:-"Asia/Shanghai"} APP_ENV prod SCAN_CACHEABLE (true) ---> Running in da3ba36fff7d ---> 3daf25ef5d4b Removing intermediate container da3ba36fff7d Step 5/11 : RUN apk add --no-cache librdkafka-dev && pecl install rdkafka && echo "extension=rdkafka.so" > /etc/php7/conf.d/rdkafka.ini ---> Running in 75615d2dc75a fetch http://mirrors.ustc.edu.cn/alpine/v3.9/main/x86_64/APKINDEX.tar.gz fetch http://mirrors.ustc.edu.cn/alpine/v3.9/community/x86_64/APKINDEX.tar.gz (1/6) Installing lz4-libs (1.8.3-r2) (2/6) Installing db (5.3.28-r1) (3/6) Installing libsasl (2.1.27-r2) (4/6) Installing librdkafka (0.11.6-r1) (5/6) Installing pkgconf (1.6.0-r0) (6/6) Installing librdkafka-dev (0.11.6-r1) Executing busybox-1.29.3-r10.trigger OK: 74 MiB in 100 packages /bin/sh: pecl: not found The command '/bin/sh -c apk add --no-cache librdkafka-dev && pecl install rdkafka && echo "extension=rdkafka.so" > /etc/php7/conf.d/rdkafka.ini' returned a non-zero code: 127 ```
发布于6年前 · 13 次浏览 · 来自
开发框架
jeristify
### 问题描述 hyperf项目制作自定义镜像时,尝试pecl install rdkafka 安装rdkafka扩展时出现pecl not found ### Swoole版本,PHP版本,以及操作系统版本信息 - 宿主机系统:centos - 宿主机没有php环境 ### 相关代码 ```dockerfile # Default Dockerfile # # @link https://www.hyperf.io # @document https://doc.hyperf.io # @contact group@hyperf.io # @license https://github.com/hyperf-cloud/hyperf/blob/master/LICENSE FROM hyperf/hyperf:7.2-alpine-cli-4.4.5 LABEL maintainer="Hyperf Developers <group@hyperf.io>" version="1.0" license="MIT" ## # ---------- env settings ---------- ## # --build-arg timezone=Asia/Shanghai ARG timezone ENV TIMEZONE=${timezone:-"Asia/Shanghai"} \ APP_ENV=prod \ SCAN_CACHEABLE=(true) RUN apk add --no-cache librdkafka-dev \ && pecl install rdkafka \ && echo "extension=rdkafka.so" > /etc/php7/conf.d/rdkafka.ini RUN set -ex \ && apk update \ # install composer && cd /tmp \ && wget https://github.com/composer/composer/releases/download/1.8.6/composer.phar \ && chmod u+x composer.phar \ && mv composer.phar /usr/local/bin/composer \ # show php version and extensions && php -v \ && php -m \ # ---------- some config ---------- && cd /etc/php7 \ # - config PHP && { \ echo "upload_max_filesize=100M"; \ echo "post_max_size=108M"; \ echo "memory_limit=1024M"; \ echo "date.timezone=${TIMEZONE}"; \ } | 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" COPY . /var/www/userCenter WORKDIR /var/www/userCenter RUN composer install --no-dev \ && composer dump-autoload -o \ && php bin/hyperf.php EXPOSE 9501 ENTRYPOINT ["php", "bin/hyperf.php", "start"] ``` ### 错误出现 ``` Step 1/11 : FROM hyperf/hyperf:7.2-alpine-cli-4.4.5 Trying to pull repository docker.io/hyperf/hyperf ... 7.2-alpine-cli-4.4.5: Pulling from docker.io/hyperf/hyperf e7c96db7181b: Already exists 7d4cb5b944fe: Pull complete 3adc24a17b24: Pull complete Digest: sha256:3947dbe4d80f8a0b24fed89e2f781245ee8249613bce9a91144e53a683546431 Status: Downloaded newer image for docker.io/hyperf/hyperf:7.2-alpine-cli-4.4.5 ---> 5da4aadf6bfc Step 2/11 : LABEL maintainer "Hyperf Developers <group@hyperf.io>" version "1.0" license "MIT" ---> Running in f81fc18ae765 ---> bdaa1eb023db Removing intermediate container f81fc18ae765 Step 3/11 : ARG timezone ---> Running in 14cfff9a9d80 ---> 209acf5b1f47 Removing intermediate container 14cfff9a9d80 Step 4/11 : ENV TIMEZONE ${timezone:-"Asia/Shanghai"} APP_ENV prod SCAN_CACHEABLE (true) ---> Running in da3ba36fff7d ---> 3daf25ef5d4b Removing intermediate container da3ba36fff7d Step 5/11 : RUN apk add --no-cache librdkafka-dev && pecl install rdkafka && echo "extension=rdkafka.so" > /etc/php7/conf.d/rdkafka.ini ---> Running in 75615d2dc75a fetch http://mirrors.ustc.edu.cn/alpine/v3.9/main/x86_64/APKINDEX.tar.gz fetch http://mirrors.ustc.edu.cn/alpine/v3.9/community/x86_64/APKINDEX.tar.gz (1/6) Installing lz4-libs (1.8.3-r2) (2/6) Installing db (5.3.28-r1) (3/6) Installing libsasl (2.1.27-r2) (4/6) Installing librdkafka (0.11.6-r1) (5/6) Installing pkgconf (1.6.0-r0) (6/6) Installing librdkafka-dev (0.11.6-r1) Executing busybox-1.29.3-r10.trigger OK: 74 MiB in 100 packages /bin/sh: pecl: not found The command '/bin/sh -c apk add --no-cache librdkafka-dev && pecl install rdkafka && echo "extension=rdkafka.so" > /etc/php7/conf.d/rdkafka.ini' returned a non-zero code: 127 ```
赞
0
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
登录
后参与评论
评论
2020-07-28
李铭昕
推荐你看一下这个 https://course.swoole-cloud.com/course-video/109 你可以提前编译好,没必要每次 build 项目的时候都编译一次。
赞
0
回复
2020-07-28
jeristify
回复
李铭昕
**明白了,非常感谢。谢谢hyperf团队出色的工作**
赞
0
回复
2021-04-08
2
231231
回复
jeristify
大佬大佬 怎么解决的 能说一下吗
赞
0
回复