从0开始构建hyperf运行环境镜像

FROM php:8.2.27-cli-alpine3.20
RUN apk update 

ARG timezone
ENV TIMEZONE=${timezone:-"Europe/Amsterdam"} \
    SCAN_CACHEABLE=(true)

RUN set -ex \
    # show php version and extensions
    && php -v \
    && php -m \
    #  ---------- some config ---------- \
    && cp /usr/local/etc/php/php.ini-production /usr/local/etc/php/php.ini \
    && cd /usr/local/etc/php/ \
    # - config PHP
    && { \
        echo "upload_max_filesize=128M"; \
        echo "post_max_size=128M"; \
        echo "memory_limit=1G"; \
        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"
 


RUN apk add --no-cache curl-dev boost-dev make --no-cache -U autoconf g++ libpng libpng-dev libjpeg-turbo libjpeg-turbo-dev freetype freetype-dev  linux-headers  libzip-dev netcat-openbsd bash busybox-extras libc6-compat
RUN docker-php-ext-configure gd --with-freetype --with-jpeg 
RUN docker-php-ext-install bcmath gd sockets zip 
COPY swoole-src-5.1.7.zip /tmp/swoole-src-5.1.7.zip
RUN cd /tmp && unzip  swoole-src-5.1.7.zip &&  cd /tmp/swoole-src-5.1.7 && phpize && ./configure  --enable-swoole-curl && make -j$(nproc) && make install 
WORKDIR /data/projects
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
RUN apk add openldap-dev yaml-dev
RUN docker-php-ext-install ldap pcntl pdo pdo_mysql
RUN pecl install redis-6.0.2 yaml
RUN echo extension=swoole.so > /usr/local/etc/php/conf.d/swoole.ini \
     && echo extension=redis.so > /usr/local/etc/php/conf.d/redis.ini \
     && echo extension=yaml.so > /usr/local/etc/php/conf.d/yaml.ini \
# RUN php --ri swoole
# 安装composer 推送仓库配置
RUN  composer global config --no-plugins allow-plugins.elendev/composer-push true
RUN  composer global require elendev/composer-push --no-interaction --prefer-dist --no-progress --no-suggest --no-scripts --no-plugins

依赖说明

  • swoole boost-dev
  • 扩展 autoconf g++
  • telnet busybox-extras
  • ldap openldap-dev
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值