1.3 docker下配置hyperf-3.0,dnmp 配置php8.1容器

因为hyperf3.X版本需要php版本至少为8.1.X,所以添加php8.1的镜像

一、复制services下的php80文件夹为php81

二、修改php81下的dockerfile

ARG PHP_VERSION
FROM ${PHP_VERSION}

ARG TZ
ARG PHP_EXTENSIONS
ARG CONTAINER_PACKAGE_URL


RUN if [ $CONTAINER_PACKAGE_URL ] ; then sed -i "s/dl-cdn.alpinelinux.org/${CONTAINER_PACKAGE_URL}/g" /etc/apk/repositories ; fi


COPY ./extensions /tmp/extensions
WORKDIR /tmp/extensions
RUN chmod +x install.sh \
    && sh install.sh \

RUN apk upgrade --no-cache && \
    apk add --no-cache  openssl libgcc libstdc++ #swoole需要libstdc++

ADD ./extensions/install-php-extensions  /usr/local/bin/

RUN chmod uga+x /usr/local/bin/install-php-extensions 

RUN install-php-extensions swoole pcntl  #安装swoole和pcntl扩展

RUN apk --no-cache add tzdata \
    && cp "/usr/share/zoneinfo/$TZ" /etc/localtime \
    && echo "$TZ" > /etc/timezone


# Fix: https://github.com/docker-library/php/issues/240
RUN apk add --no-cache --repository http://${CONTAINER_PACKAGE_URL}/alpine/v3.18/community/ gnu-libiconv=1.17-r1
ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so php

# Install composer and change it's cache home
RUN curl -o /usr/bin/composer https://mirrors.aliyun.com/composer/composer.phar \
    && chmod +x /usr/bin/composer
ENV COMPOSER_HOME=/tmp/composer

# php image's www-data user uid & gid are 82, change them to 1000 (primary user)
RUN apk --no-cache add shadow && usermod -u 1000 www-data && groupmod -g 1000 www-data


WORKDIR /www

三、修改docker-compose.yml,增加php81

  php81:
    build:
      context: ./services/php81
      args:
        PHP_VERSION: php:${PHP81_VERSION}-fpm-alpine3.16
        CONTAINER_PACKAGE_URL: ${CONTAINER_PACKAGE_URL}
        PHP_EXTENSIONS: ${PHP81_EXTENSIONS}
        TZ: "$TZ"
    container_name: php81
    ports:
      - "9507:9507"
      - "9508:9508"    
    expose:
      - 9507
      - 9508
    extra_hosts:
      - "www.hadmin3.dev:172.18.0.1"  
    volumes:
      - ${SOURCE_DIR}:/www/:rw
      - ${PHP81_PHP_CONF_FILE}:/usr/local/etc/php/php.ini:ro
      - ${PHP81_FPM_CONF_FILE}:/usr/local/etc/php-fpm.d/www.conf:rw
      - ${PHP81_LOG_DIR}:/var/log/php
      - ${DATA_DIR}/composer:/tmp/composer
    restart: always
    cap_add:
      - SYS_PTRACE
    networks:
      - default

四、修改.env配置,增加php81部分

# PHP8.1.8

PHP81_VERSION=8.1.8
PHP81_PHP_CONF_FILE=./services/php81/php.ini
PHP81_FPM_CONF_FILE=./services/php81/php-fpm.conf
PHP81_LOG_DIR=./logs/php81
PHP81_EXTENSIONS=pdo_mysql,mysqli,mbstring,gd,curl,opcache,redis,swoole

五、启动docker,并启动hyperf

docker-compose up
docker exec -it php81
cd 3.0.1 
php bin/hyperf.php start
image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容