正常搭建都是通过hyperf官方docker库,如执行:
docker run --name hyperf -v D:/xxxx/hyperf:/data/project -p 9501:9501 -it --privileged -u root --entrypoint /bin/sh hyperf/hyperf:8.2-alpine-v3.11-swoole
以上命令确实方便快捷,但是要安装第三方php扩展则很不方便。
可以自己编写php-cli的Dockerfile,代码如下:
FROM php:8.2-cli
#安装依赖工具
RUN apt-get update && apt-get install -y libssl-dev \
zlib1g-dev \
libicu-dev \
g++ \
libldap2-dev
#安装php ldap扩展
RUN docker-php-ext-install ldap
#安装php pcntl扩展
RUN docker-php-ext-install pcntl
#安装依赖工具
RUN apt-get install -y build-essential libxml2-dev cmake git libbrotli-dev
#安装php sockets扩展
RUN docker-php-ext-install sockets
#拉去nghttp2并编译代码
RUN git clone https://github.com/nghttp2/nghttp2.git && \
cd nghttp2 && \
mkdir build && \
cd build && \
cmake .. && \
make && \
make install
# 安装 swoole 扩展
RUN pecl install swoole-6.0.2 \
&& docker-php-ext-enable swoole
#安装composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
#设置工作目录
WORKDIR /data/www
#暴露端口
EXPOSE 9501
#启动的时候执行脚本命令
CMD [ "php","/data/www/bin/hyperf.php","start"]
在新建docker-compose.yml,代码如下:
version: '3'
services:
swoole:
build: .
volumes:
- /xx/hyperf-skeleton:/data/www
ports:
- "9501:9501"
然后本机通过composer 创建hyperf-skeleton项目
然后执行docker-compose build 进行编译
编译成功之后docker-compose up 启动 即可成功
1466

被折叠的 条评论
为什么被折叠?



