Hyperf 是一个高性能、高灵活性的渐进式 PHP 协程框架,内置协程服务器及大量常用 的组件,性能较传统基于 PHP-FPM 的框架有质的提升,提供超高性能的同时,也保持着极 其灵活的可扩展性。请根据要求完成数据库服务 MariaDB、缓存服务 Redis、微服务 Hyperf 及前端服务 Nginx 按照要求进行容器化。
容器化 MariaDB 服务
编写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)设置服务开机自启。
# 初始化数据库脚本
[root@k8s-master-node1 Hyperf]# cat init.sh
#!/bin/bash
echo "[mysqld]\ncharacter-set-server=utf8" > /etc/my.cnf
mysql_install_db --user=root
mysqld_safe --user=root &
sleep 5
mysql -e "grant all privileges on *.* to root@localhost identified by 'root';grant all privileges on *.* to root@'%' identified by 'root';source /root/hyperf_admin.sql;"
# Dockerfile-mariadb
[root@k8s-master-node1 Hyperf]# cat Dockerfile-mariadb
FROM centos:7.9.2009
MAINTAINER Chinaskills
RUN rm -rvf /etc/yum.repos.d/*
COPY local.repo /etc/yum.repos.d/
ADD yum /opt/yum
COPY sql/hyperf_admin.sql /root
COPY init.sh /root
RUN yum install -y mariadb-server && \
bash /root/init.sh
EXPOSE 3306
CMD ["mysqld_safe","--user=root"]
容器化 Redis 服务
编写 Dockerfile 文件构建 hyperf-redis:v1.0 镜像,具体要求如下:(需要用到的软件包: Hyperf.tar.gz)
(1)基础镜像:centos:7.9.2009;
(2)安装 Redis 服务;
(3)关闭保护模式;
(4)声明端口:6379;
(5)设置服务开机自启。
[root@k8s-master-node1 Hyperf]# cat Dockerfile-redis
FROM centos:7.9.2009
RUN rm -rf /etc/yum.repos.d/*
COPY yum /opt/yum
COPY local.repo /etc/yum.repos.d/
RUN yum install -y redis
RUN sed -i 's/127.0.0.1/0.0.0.0/g' /etc/redis.conf && \
sed -i 's/protected-mode yes/protected-mode no/g' /etc/redis.conf
EXPOSE 6379
CMD ["redis-server","/etc/redis.conf"]
容器化 Nginx 服务
编写 Dockerfile 文件构建 hyperf-nginx:v1.0 镜像,具体要求如下:(需要用到的软件包: Hyperf.tar.gz)
(1)基础镜像:centos:7.9.2009;
(2)安装 nginx 服务;
(3)声明端口:80;
(4)设置服务开机自启。
[root@k8s-master-node1 Hyperf]# cat Dockerfile-nginx
FROM centos:7.9.2009
RUN rm -rf /etc/yum.repos.d/*
COPY yum /opt/yum
COPY local.repo /etc/yum.repos.d/
RUN yum install -y nginx
WORKDIR /var/www/
COPY project/frontend /var/www/frontend
COPY project/docker/conf.d/hyperf-admin.conf /etc/nginx/conf.d/default.conf
EXPOSE 80
CMD ["nginx","-g","daemon off;"]
容器化 Hyperf 服务
编写 Dockerfile 文件构建 hyperf-service:v1.0 镜像,具体要求如下:(需要用到的软件包: Hyperf.tar.gz)
(1)基础镜像:centos:7.9.2009;
(2)安装 PHP 及扩展;
(3)使用源码编译安装 Swoole。
#考察编译安装PHP
编排部署 Hyperf 框架
编写/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。
-
登录 (账号/密码):(daodao/a1a1a1)