php-fpm容器化部署

2021-07-26 17:46:29

基础环境上一篇文章已经差不多搞清楚了,本篇文章大概记录一下部署传统php-fpm项目的一些注意事项吧!

https://www.putyy.com/articles/57

 

最开始没部署过, 一般情况会遇到一些问题,如下:

  1. php-fpm 的一些配置直接打包镜像的时候配置好还是挂载配置文件?
  2. php-fpm 慢日志、错误日志怎么收集?
  3. 通过每台服务器启动容器挂载的方式还是将项目打包成镜像的方式?
  4. 如果 docker-swarm 部署 每台服务器只能部署 nginx+fpm 方式 在前置一台负载均衡 nginx?
  5. 项目日志怎么收集? ......

现在看来一系列问题的出现反而使得我们实践的动作变慢,如果不清楚或者找不到自己想要的答案,最好的处理办法就是动手实践。

 

先分享一下相关的dockerfile吧!

https://github.com/putyy/docker-php-fpm

 

以laravel项目为例:
  1. 集群环境我选择只创建单纯的API服务(无状态,增加减少不会对业务造成太大影响),定时任务、队列、后台系统之类的通常独立服务器来部署
  2. 我们都知道,php-fpm需要配合nginx apache来使用,所以直接将nginx+php-fpm打成一个镜像(虽然一般都是单独的,奈何php-fpm不便)
  3. php-fpm慢日志、错误日志其实只要相关配置调整合适可以忽略,如果要用到直接进入容器查看也未尝不可,所以配置文件直接打成镜像
  4. 项目日志重定向问题, 最开始想着直接配置laravel日志输出到php标准输出搞了一会没搞好就另一种方式了

"/usr/sbin/php-fpm7 -D && nginx && tail -f /www/php/php74-stdout.log"

  1. 项目日志收集可以使用elk方案,自建或云上服务

 

最后部署阶段

  1. jekins
  2. gitrunner ...... 使用起来都还算比较正常,我是用的jekins,之前用的也是这样就也懒得换了

 

总结一点: 从开始的很多问题到解决问题, 其实都在不经意去追求简单高效的方式部署项目!

本文由"putyy"原创,转载无需和我联系,但请注明来自putyy
您的浏览器不支持canvas标签,请您更换浏览器