服务端配置
我这里用的是php8,想看php7的。查看5注意后再从头看
1.laradock下的DockerFile文件内容
ARG HYPERF_ALPINE_VERSION
ARG HYPERF_PHP_VERSION
FROM hyperf/hyperf:${HYPERF_PHP_VERSION}-alpine-v${HYPERF_ALPINE_VERSION}-base
LABEL maintainer="Hyperf Developers <group@hyperf.io>" version="1.0" license="MIT"
ARG HYPERF_SWOOLE_VERSION
ARG timezone
ENV TIMEZONE=${timezone:-"Asia/Shanghai"} \
APP_ENV=prod \
SCAN_CACHEABLE=(true)
##
# ---------- env settings ----------
##
ENV HYPERF_SWOOLE_VERSION=${HYPERF_SWOOLE_VERSION:-"4.8.8"} \
# install and remove building packages
PHPIZE_DEPS="autoconf dpkg-dev dpkg file g++ gcc libc-dev make php8-dev php8-pear pkgconf re2c pcre-dev pcre2-dev zlib-dev libtool automake"
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
# update
RUN apk update && \
apk upgrade && \
apk add --no-cache bash git openssh
RUN set -ex \
&& apk update \
# for swoole extension libaio linux-headers
&& apk add libstdc++ openssl bash \
&& apk add --virtual .build-deps $PHPIZE_DEPS libaio-dev openssl-dev \
# download
&& cd /tmp \
&& curl -SL "https://hub.fastgit.xyz/swoole/swoole-src/archive/refs/tags/v${HYPERF_SWOOLE_VERSION}.tar.gz" -o swoole.tar.gz \
&& ls -alh \
# php extension:swoole
&& cd /tmp \
&& mkdir -p swoole \
&& tar -xf swoole.tar.gz -C swoole --strip-components=1 \
&& ln -s /usr/bin/phpize8 /usr/local/bin/phpize \
&& ln -s /usr/bin/php-config8 /usr/local/bin/php-config \
&& ( \
cd swoole \
&& phpize \
&& ./configure --enable-mysqlnd --enable-openssl --enable-http2 \
&& make -s -j$(nproc) && make install \
) \
&& { \
echo "upload_max_filesize=128M"; \
echo "post_max_size=128M"; \
echo "memory_limit=1G"; \
echo "date.timezone=${TIMEZONE}"; \
} \
&& echo "memory_limit=1G" > /etc/php8/conf.d/00_default.ini \
&& echo "opcache.enable_cli = 'On'" >> /etc/php8/conf.d/00_opcache.ini \
&& echo "extension=swoole.so" > /etc/php8/conf.d/50_swoole.ini \
&& echo "swoole.use_shortname = 'Off'" >> /etc/php8/conf.d/50_swoole.ini \
&& ln -sf /usr/share/zoneinfo/${TIMEZONE} /etc/localtime \
&& echo "${TIMEZONE}" > /etc/timezone \
# install composer
&& cd /tmp \
&& wget https://hub.fastgit.xyz/composer/composer/releases/download/2.3.4/composer.phar \
&& chmod u+x composer.phar \
&& mv composer.phar /usr/local/bin/composer \
# composer config -g repo.packagist composer https://mirrors.aliyun.com/composer \
# php info
&& php -v \
&& php -m \
# && php --ri swoole \
# ---------- clear works ----------
&& apk del .build-deps \
&& rm -rf /var/cache/apk/* /tmp/* /usr/share/man /usr/local/bin/php* \
&& echo -e "\033[42;37m Build Completed :).\033[0m\n"
EXPOSE 9501
目录结构如下
2.配置.env
HYPERF_PORT=9501
HYPERF_PHP_VERSION=8.0
HYPERF_SWOOLE_VERSION=4.8.8
HYPERF_ALPINE_VERSION=3.12
HYPERF_WWW=../www
3.docker-compose.yml 最下面追加
hyperf:
build:
args:
- "HYPERF_PHP_VERSION=${HYPERF_PHP_VERSION}"
- "HYPERF_SWOOLE_VERSION=${HYPERF_SWOOLE_VERSION}"
- "HYPERF_ALPINE_VERSION=${HYPERF_ALPINE_VERSION}"
context: ./hyperf
depends_on:
- redis
networks:
- backend
ports:
- "9501:9501"
- "9502:9502"
- "9503:9503"
- "9504:9504"
tty: true
volumes:
- "${HYPERF_WWW}:/www/"
4.构建
docker-compose build hyperf
docker-compose up -d hyperf
5.注意
1.要是适用php7.4,把dockerfile里面的有关php8的改为7,把env里面改为7.4
2.端口号可以根据自己的需要自己更改