qidao123.com技术社区-IT企服评测·应用市场
标题:
云计算-容器云-编排部署 Hyperf 框架
[打印本页]
作者:
三尺非寒
时间:
2025-5-8 05:55
标题:
云计算-容器云-编排部署 Hyperf 框架
Hyperf编排部署
1、 Hyperf概述
只管现在基于PHP语言开发的框架处于一个百家争鸣的时代,但仍然未能看到一个优雅的计划与超高性能的共存的完善框架,亦没有看到一个真正为PHP微服务铺路的框架,此为Hyperf及其团队成员的初志。
Hyperf是一个高性能、高灵活性的渐进式PHP协程框架,内置协程服务器及大量常用的组件,性能较传统基于PHP-FPM的框架有质的提升,提供超高性能的同时,也保持着极其灵活的可扩展性,尺度组件均基于PSR尺度实现和强大的依赖注入计划,保证了绝大部门组件或类都是可替换与可复用的。
Hyperspeed + Flexibility = Hyperf,从名字上就可以看出超高速和灵活性是Hyperf的基因。对于超高速,Hyperf基于Swoole和Swow协程,并在框架计划上进行大量的优化以确保超高性能的输出。对于灵活性,Hyperf强大的依赖注入组件,组件均基于PSR尺度的左券和由Hyperf定义的左券实现,到达框架内的绝大部门的组件或类都是可替换的。
情况准备
登录后复制
[root@k8s-master-node1 ~]# tar -zxvf Hyperf.tar.gz
[root@k8s-master-node1 ~]# cd hyperf/
[root@k8s-master-node1 hyperf]# docker load -i centos_7.9.2009.tar
[root@k8s-master-node1 hyperf]# vim local.repo
[yum]
name=yum
baseurl=file:///root/yum
gpgcheck=0
enabled=1
复制代码
1.
2.
3.
4.
5.
6.
7.
8.
9.
【标题 1】容器化 MariaDB 服务[1 分]
编写Dockerfile文件构建hyperf-mariadb:v1.0镜像,具体要求如下:(必要用到的软件包: Hyperf.tar.gz)
(1)基础镜像:centos:7.9.2009;
(2)完成 MariaDB 服务的安装;
(3)声明端口:3306;
(4)设置数据库 root 用户的密码为 root;
(5)将提供的数据库文件 hyperf_admin.sql 导入数据库;
(6)设置服务开机自启。
完成后构建镜像,并提交 master 节点的用户名、密码和 IP 地址到答题框。
登录后复制
[root@k8s-master-node1 hyperf]# vim Dockerfile-mariadb
FROM centos:7.9.2009
RUN rm -rf /etc/yum.repos.d/*
ADD local.repo /etc/yum.repos.d/
ADD yum /root/yum
RUN yum install mariadb mariadb-server -y
COPY sql/hyperf_admin.sql /opt
RUN mysql_install_db --user=root
RUN mysqld_safe --user=root & sleep 8;\
mysqladmin -uroot password root ;\
mysql -uroot -proot -e "grant all privileges on*.*to 'root'@'%' identified by 'root';";\
mysql -uroot -proot -e "source /opt/hyperf_admin.sql;"
EXPOSE 3306
CMD ["mysqld_safe","--user=root"]
[root@k8s-master-node1 hyperf]# docker build -t hyperf-mariadb:v1.0 -f Dockerfile-mariadb .
复制代码
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
【标题 2】容器化 Redis 服务[1 分]
编写 Dockerfile 文件构建 hyperf-redis:v1.0 镜像,具体要求如下:
(必要用到的软件包: Hyperf.tar.gz)
(1)基础镜像:centos:7.9.2009;
(2)安装 Redis 服务;
(3)关闭保护模式;
(4)声明端口:6379;
(5)设置服务开机自启。
完成后构建镜像,并提交 master 节点的用户名、密码和 IP 地址到答题框。
登录后复制
[root@k8s-master-node1 hyperf]# vim Dockerfile-redis
FROM centos:7.9.2009
RUN rm -rf /etc/yum.repos.d/*
ADD local.repo /etc/yum.repos.d/
ADD yum /root/yum
RUN yum install redis -y
RUN sed -i 's/127.0.0.1/0.0.0.0/g' /etc/redis.conf
RUN sed -i 's/-mode yes/-mode no/g' /etc/redis.conf
EXPOSE 6379
CMD ["/usr/bin/redis-server","/etc/redis.conf"]
[root@k8s-master-node1 hyperf]# docker build -t hyperf-redis:v1.0 -f Dockerfile-redis .
复制代码
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
【标题 3】容器化 Nginx 服务[0.5 分]
编写 Dockerfile 文件构建 hyperf-nginx:v1.0 镜像,具体要求如下:
(必要用到的软件包: Hyperf.tar.gz)
(1)基础镜像:centos:7.9.2009;
(2)安装 nginx 服务;
(3)声明端口:80;
(4)设置服务开机自启。
完成后构建镜像,并提交 master 节点的用户名、密码和 IP 地址到答题框。
登录后复制
[root@k8s-master-node1 hyperf]# vim Dockerfile-nginx
FROM centos:7.9.2009
RUN rm -rf /etc/yum.repos.d/*
ADD local.repo /etc/yum.repos.d/
ADD yum /root/yum
RUN yum install nginx -y
EXPOSE 80
CMD ["nginx","-g","daemon off;"]
[root@k8s-master-node1 hyperf]# docker build -t hyperf-nginx:v1.0 -f Dockerfile-nginx .
复制代码
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
【标题 4】容器化 Hyperf 服务[1 分]
编写 Dockerfile 文件构建 hyperf-service:v1.0 镜像,具体要求如下:(必要用到的软件包:
Hyperf.tar.gz)
(1)基础镜像:centos:7.9.2009;
(2)安装 PHP 及扩展;
(3)使用源码编译安装 Swoole。
完成后构建镜像,并提交 master 节点的用户名、密码和 IP 地址到答题框。
登录后复制
[root@k8s-master-node1 hyperf]# vim Dockerfile-service
FROM centos:7.9.2009
RUN rm -rf /etc/yum.repos.d/*
ADD local.repo /etc/yum.repos.d/
ADD yum /root/yum
RUN yum install git autoconf gcc gcc-c++ unzip which tzdara php-* yum-utils dpkg-devel -y
ADD swoole-v4.8.3.zip /tmp
RUN cd /tmp && unzip swoole-v4.8.3.zip && mv swoole-v4.8.3 swoole
RUN cd /tmp/swoole && phpize && ./configure --enable-openssl --enable-http2 --enable-mysqlnd && make -s -j$(nproc) && make install
RUN echo "extension=swoole.so" >> /etc/php.d/20-swoole.ini
[root@k8s-master-node1 hyperf]# docker build -t hyperf-service:v1.0 -f Dockerfile-service .
复制代码
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
【标题 5】编排部署 Hyperf 框架[3.5 分]
编写/root/hyperf/project/docker-compose.yaml 文件,具体要求如下:
(1)容器 1 名称:hyperf-mysql;镜像:hyperf-mariadb:v1.0;端口映射:3306:3306;
(2)容器 2 名称:hyperf-redis;镜像:hyperf-redis:v1.0;
(3)容器 3 名称:hyperf-ui;镜像:hyperf-nginx:v1.0;端口映射:80:8081;
(4)容器 4 名称:hyperf-service;镜像:hyperf-service:v1.0。
完成后编排部署 Hyperf 框架,并提交 master 节点的用户名、密码和 IP 地址到答题框。
登录后复制
[root@k8s-master-node1 project]# vi docker-compose.yaml
version: '3'
services:
app:
container_name: hyperf-service
image: hyperf-service:v1.0
restart: always
command: "sleep 2h"
hyperf-mysql:
container_name: hyperf-mysql
image: hyperf-mariadb:v1.0
restart: always
ports:
- 3306:3306
hyperf-redis:
container_name: hyperf-redis
image: hyperf-redis:v1.0
restart: always
hyperf-ui:
container_name: hyperf-ui
image: hyperf-nginx:v1.0
restart: always
ports:
- "8081:80"
volumes:
- /root/hyperf/project/docker/conf.d:/etc/nginx/conf.d
- /root/hyperf/project/frontend:/var/www/frontend
[root@k8s-master-node1 project]# docker-compose up -d
[root@k8s-master-node1 project]# docker-compose ps
Name Command State Ports
------------------------------------------------------------------------------------------------
hyperf-mysql mysqld_safe --user=root Up 0.0.0.0:3306->3306/tcp,:::3306->3306/tcp
hyperf-redis redis-server /etc/redis.conf Up 6379/tcp
hyperf-service sleep 2h Up
hyperf-ui nginx -g daemon off; Up 0.0.0.0:8081->80/tcp,:::8081->80/tcp
复制代码
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
登录 (账号/密码)
daodao/a1a1a1)
本文由博客一文多发平台 OpenWrite 发布!
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 qidao123.com技术社区-IT企服评测·应用市场 (https://dis.qidao123.com/)
Powered by Discuz! X3.4