docker构建hyperf环境

2024-03-02 05:36
文章标签 构建 docker 环境 hyperf

本文主要是介绍docker构建hyperf环境,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一,构建hyperf 镜像

官网git https://github.com/hyperf/hyperf-docker

  1. 使用dockerfile构建镜像
    根据需要这里我使用8.1 swoole版本的镜像
    在/home/hyperfdocker 目录中新建一个Dockerfile文件,将这个git上的Dockerfile内容复制粘贴进去
docker build -t hyperf:php8.1 .

因为我的网络没有科学上网,失败了,换另一种方法

  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-swool
docker 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 bash

cd到工作目录

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安装的时候选择安装了mysql,redis等模块,那就须要配置连接信息,否则会一直报错,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\IndexController@test');
});

在项目目录\hyperf-skeleton\app\Controller下找到IndexController.php文件,新增一个action,文件内容修改如下

public function test(){$users = Db::select('SELECT * FROM `user`');  //  返回arrayreturn ['users' => $users,];}

在这里插入图片描述

这篇关于docker构建hyperf环境的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/765063

相关文章

Java中的Opencv简介与开发环境部署方法

《Java中的Opencv简介与开发环境部署方法》OpenCV是一个开源的计算机视觉和图像处理库,提供了丰富的图像处理算法和工具,它支持多种图像处理和计算机视觉算法,可以用于物体识别与跟踪、图像分割与... 目录1.Opencv简介Opencv的应用2.Java使用OpenCV进行图像操作opencv安装j

mysql-8.0.30压缩包版安装和配置MySQL环境过程

《mysql-8.0.30压缩包版安装和配置MySQL环境过程》该文章介绍了如何在Windows系统中下载、安装和配置MySQL数据库,包括下载地址、解压文件、创建和配置my.ini文件、设置环境变量... 目录压缩包安装配置下载配置环境变量下载和初始化总结压缩包安装配置下载下载地址:https://d

将Python应用部署到生产环境的小技巧分享

《将Python应用部署到生产环境的小技巧分享》文章主要讲述了在将Python应用程序部署到生产环境之前,需要进行的准备工作和最佳实践,包括心态调整、代码审查、测试覆盖率提升、配置文件优化、日志记录完... 目录部署前夜:从开发到生产的心理准备与检查清单环境搭建:打造稳固的应用运行平台自动化流水线:让部署像

gradle安装和环境配置全过程

《gradle安装和环境配置全过程》本文介绍了如何安装和配置Gradle环境,包括下载Gradle、配置环境变量、测试Gradle以及在IntelliJIDEA中配置Gradle... 目录gradle安装和环境配置1 下载GRADLE2 环境变量配置3 测试gradle4 设置gradle初始化文件5 i

Python中构建终端应用界面利器Blessed模块的使用

《Python中构建终端应用界面利器Blessed模块的使用》Blessed库作为一个轻量级且功能强大的解决方案,开始在开发者中赢得口碑,今天,我们就一起来探索一下它是如何让终端UI开发变得轻松而高... 目录一、安装与配置:简单、快速、无障碍二、基本功能:从彩色文本到动态交互1. 显示基本内容2. 创建链

Golang使用etcd构建分布式锁的示例分享

《Golang使用etcd构建分布式锁的示例分享》在本教程中,我们将学习如何使用Go和etcd构建分布式锁系统,分布式锁系统对于管理对分布式系统中共享资源的并发访问至关重要,它有助于维护一致性,防止竞... 目录引言环境准备新建Go项目实现加锁和解锁功能测试分布式锁重构实现失败重试总结引言我们将使用Go作

Java汇编源码如何查看环境搭建

《Java汇编源码如何查看环境搭建》:本文主要介绍如何在IntelliJIDEA开发环境中搭建字节码和汇编环境,以便更好地进行代码调优和JVM学习,首先,介绍了如何配置IntelliJIDEA以方... 目录一、简介二、在IDEA开发环境中搭建汇编环境2.1 在IDEA中搭建字节码查看环境2.1.1 搭建步

更改docker默认数据目录的方法步骤

《更改docker默认数据目录的方法步骤》本文主要介绍了更改docker默认数据目录的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1.查看docker是否存在并停止该服务2.挂载镜像并安装rsync便于备份3.取消挂载备份和迁

Docker集成CI/CD的项目实践

《Docker集成CI/CD的项目实践》本文主要介绍了Docker集成CI/CD的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录一、引言1.1 什么是 CI/CD?1.2 docker 在 CI/CD 中的作用二、Docke

如何在一台服务器上使用docker运行kafka集群

《如何在一台服务器上使用docker运行kafka集群》文章详细介绍了如何在一台服务器上使用Docker运行Kafka集群,包括拉取镜像、创建网络、启动Kafka容器、检查运行状态、编写启动和关闭脚本... 目录1.拉取镜像2.创建集群之间通信的网络3.将zookeeper加入到网络中4.启动kafka集群