.gs域名做网站怎么样,做网站有没有用,aso优化贴吧,电商网站制作价格一#xff0c;构建hyperf 镜像
官网git https://github.com/hyperf/hyperf-docker
使用dockerfile构建镜像 根据需要这里我使用8.1 swoole版本的镜像 在/home/hyperfdocker 目录中新建一个Dockerfile文件#xff0c;将这个git上的Dockerfile内容复制粘贴进去
docker build…一构建hyperf 镜像
官网git https://github.com/hyperf/hyperf-docker
使用dockerfile构建镜像 根据需要这里我使用8.1 swoole版本的镜像 在/home/hyperfdocker 目录中新建一个Dockerfile文件将这个git上的Dockerfile内容复制粘贴进去
docker build -t hyperf:php8.1 .因为我的网络没有科学上网失败了换另一种方法
进入docker镜像仓库下载hyperf官方镜像 https://hub.docker.com/r/hyperf/hyperf 此处我们直接下载镜像
docker pull hyperf/hyperf:8.1-alpine-v3.11-swoole
docker images二生成容器
docker run -d --name hyperf -v 宿主机代码目录: 容器内代码目录 -p 宿主机端口:容器端口默认9501 -it --privileged -u root hyperf/hyperf:7.4-alpine-v3.11-swooldocker run -d --name hyperf -v /home/hyperfdocker:/www -p 9701:9501 -it --privileged -u root --entrypoint /bin/sh hyperf/hyperf:8.1-alpine-v3.16-swoole查看容器
三安装hyperf并运行
进入容器
docker exec -it hyperf bashcd到工作目录
cd /www修改composer 国内阿里云源 加速下载 (如提示composer命令不存在需要安装composer或在宿主机执行)
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer通过composer下载安装代码
composer create-project hyperf/hyperf-skeleton注意这里必须安装PHP 8.1否则安装不成功一直报错 composer完成后cd到hyperf-skeleton目录下运行项目
php bin/hyperf.php start注意这里有个坑如果我们composer安装的时候选择安装了mysqlredis等模块那就须要配置连接信息否则会一直报错start启动不起来mysql不会报错 假设我们开启了mysql模块我本机已经启动了一个mysql容器我们就去修改配置文件然后连接mysql数据库 容器之间的互联是使用共享网络指定共同的内网ip进行桥接连通第一步创建共享网络。第二步容器运行时指定好网络就行
查看容器列表 docker ps -a查看容器网络 查看docker 镜像/容器的元数据
docker inspect mysql5前面其实我已经安装了一个lnmp环境这里我想就用hyperf容器来联通lnmp环境中的mysql容器
docker inspect lnmp_default这里我们采用创建自定义网络的方式来连通通过创建自定义网络可以为容器提供一个独立的网络环境使得容器可以相互通信并与其他网络资源进行交互。自定义网络提供了更灵活和可扩展的容器互联方式相对于过时的 --link 参数更加推荐和强大 创建自定义网络后可以将容器连接到该网络并使用容器名称或服务名称进行容器间通信。这种方式更加标准化具备更好的扩展性和管理能力。 所以我们只需要将hyperf 容器 加入 mysql5容器网络lnmp_default即可这里也有两种方法一种是在 run初始化容器的是使用 --network lnmp_default 声明他的网络另外一种就是容器已经run好了那现在直接加入就行了
docker network connect lnmp_default hyperf然后再使用 docker inspect lnmp_default 查看发现已经包含进来了 如要要验证可以使用两边互相ping通来测试
hyperf配置mysql连接 修改.env配置文件
注意 这里面的db_host 是刚刚查看的mysql5 容器的ip db_port 是容器内部端口不是映射端口 在项目目录\hyperf-skeleton\config目录下打开routes.php文件添加路由配置
Router::addGroup(/index/,function (){Router::get(test,App\Controller\IndexControllertest);
});在项目目录\hyperf-skeleton\app\Controller下找到IndexController.php文件新增一个action文件内容修改如下
public function test(){$users Db::select(SELECT * FROM user); // 返回arrayreturn [users $users,];}