Docker下搭建PHP Swoole开发运行环境方案

Docker Desktop安装

Docker容器本身是基于Linux的内核机制设计的功能,因此,在Windows上并不支持直接运行Docker环境,需要借助虚拟化技术(开发云桌面本身也是基于虚拟化技术实现的,虚拟化的机器不支持虚拟化,因此,开发云桌面是运行不了Docker的),若果你的机器是Windows 10及以上操作系统,处理器支持虚拟化技术,可使用WSL2作为Docker运行载体,不支持虚拟化技术或者系统在Windows7以上windows10以下,请使用Hyper-V作为Docker运行载体,其他情况下请使用Docker Machine替代Docker Desktop。Docker Machine可以使用Virtualbox作为Docker运行载体,本文档使用Docker Desktop For Mac作为教程。

下载地址:Docker Desktop for Mac and Windows | Docker

如果不使用WSL2的话,需要提前开启Hyper-V能力,请自行检索安装方法。下一步安装法安装完成(Mac下将启动程序拖入应用程序目录即可)

注:ARM处理器Mac需要下载专用版本

设置好加速地址之后,即可进入Docker Hub选择自己想要使用的镜像,无需登陆,直接在搜索栏搜索即可

Docker Hub:Docker Hub Container Image Library | App Containerization

Dockerfile与docker-compose.yml

Dockerfile文件用于处理单个服务节点的环境结构,其运行结果将获得一个新的镜像,你可以上传自己的镜像供自己或他人引用来创建容器

docker-compose.yml文件用于组织多个镜像服务之间的组织、网络结构、环境变量等信息,其运行结果将获得一组编排好的可相互访问操作的容器,一般使用docker-compose来做服务编排

注:docker-compose只能用来做简单的服务编排,并不能像K8S那样做到大型可靠的、可自动扩缩容的服务编排,因此,docker-compose仅适用于开发环境或小型的正式环境。在真实Linux环境下,docker本身不包含docker-compose,如果你使用Linux环境的话,需要自行安装docker-compose运行工具

相关Dockerfile文件和docker-compose.yml文件的编写规则此处按下不表,大家可自行查阅资料,下文将直接使用docker-compose来构建一个相对完整的服务,nginx + Swoole + Mysql + Redis

Nginx+PHP+Swoole环境搭建

Nginx环境

Nginx在整个体系中主要承担的作用是解析完整的HTTP协议,此处请注意,Nginx如果只是作为反向代理服务或静态文件服务的时候,其性能是十分高的,不需要担心Nginx代理会影响Swoole的性能。

PHP + Swoole环境

swoole服务也有官方提供的镜像可以直接使用,但是此处展示Dockerfile文件在docker-compose服务编排中的作用,使用自己通过Dockerfile构建的镜像来处理服务,首先需要选择一个基础的镜像,然后在该镜像上构建所需要使用的环境,完成新的镜像的构建,直接的方式是使用CentOS、Ubuntu甚至Alpine这一类操作系统镜像作为基础镜像构建,但是更通用的做法是使用更接近使用环境目标的镜像来构建自己的镜像,此处直接使用php-cli镜像作为基础镜像,脚本如下:

至此,nginx代理的swoole服务已经可以正常启动了,启动时自动执行了index.php脚本,执行docker-compose up启动后,可使用浏览器访问:http://127.0.0.1和http://127.0.0.1/readme.html分别测试swoole服务访问和静态文件访问是否正常可用。

Mysql+Redis环境搭建

接下来,为了使项目在本地开发更正常,还需要搭建本地的Mysql甚至Redis服务来提供数据存储和缓存服务,不再过多赘述,直接上服务编排代码:

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值