基础环境上一篇文章已经差不多搞清楚了,本篇文章大概记录一下部署传统php-fpm项目的一些注意事项吧!
https://www.putyy.com/articles/57
最开始没部署过, 一般情况会遇到一些问题,如下:
- php-fpm 的一些配置直接打包镜像的时候配置好还是挂载配置文件?
- php-fpm 慢日志、错误日志怎么收集?
- 通过每台服务器启动容器挂载的方式还是将项目打包成镜像的方式?
- 如果 docker-swarm 部署 每台服务器只能部署 nginx+fpm 方式 在前置一台负载均衡 nginx?
- 项目日志怎么收集? ......
现在看来一系列问题的出现反而使得我们实践的动作变慢,如果不清楚或者找不到自己想要的答案,最好的处理办法就是动手实践。
先分享一下相关的dockerfile吧!
https://github.com/putyy/docker-php-fpm
以laravel项目为例:
- 集群环境我选择只创建单纯的API服务(无状态,增加减少不会对业务造成太大影响),定时任务、队列、后台系统之类的通常独立服务器来部署
- 我们都知道,php-fpm需要配合nginx apache来使用,所以直接将nginx+php-fpm打成一个镜像(虽然一般都是单独的,奈何php-fpm不便)
- php-fpm慢日志、错误日志其实只要相关配置调整合适可以忽略,如果要用到直接进入容器查看也未尝不可,所以配置文件直接打成镜像
- 项目日志重定向问题, 最开始想着直接配置laravel日志输出到php标准输出搞了一会没搞好就另一种方式了
"/usr/sbin/php-fpm7 -D && nginx && tail -f /www/php/php74-stdout.log"
- 项目日志收集可以使用elk方案,自建或云上服务
最后部署阶段
- jekins
- gitrunner ...... 使用起来都还算比较正常,我是用的jekins,之前用的也是这样就也懒得换了