php - Docker网站目录是挂载方式好还是拷贝进容器好?
本文介绍了php - Docker网站目录是挂载方式好还是拷贝进容器好?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
最近在研究docker和持续集成的相关知识,LNMP情况下,我把php
和nginx
分别单独做到不同的镜像里,目前是通过挂载网站目录到宿主机的方法。
如果做持续集成,是通过挂载网站目录的方式好还是把网站目录COPY
进容器好呢?
在持续集成的情况下,是不是如果是挂载,每次提交后只用更新宿主机网站目录就行了,如果COPY
,每次都要重构nginx
容器?
解决方案
正好这个问题我也想过很久,其实有几种方案,各有利弊:
-
把nginx和php作为两个容器,代码另外放在volume,分别供php和nginx两者挂载
好处:代码更新灵活
坏处:感觉这作为一个服务来说很山寨(可以和Java/NodeJS的服务类比一下);另外,如果你用到了composer,依赖部分无法在制作镜像中过程中自动化安装
-
把nginx作为一个容器,php和代码放在另一个容器,但其中代码目录也需要供nginx挂载
好处:相比1,可以把composer放入PHP容器中,制作镜像时帮你安装依赖
坏处:作为服务依然很山寨
-
把nginx、php和代码全放入同一个容器
好处:更符合微服务的定义,整体对外构成一个服务;nginx和php之间可以直接用unix socket通信
坏处:除了灵活性之外,不太符合Docker官方一个容器只跑一个服务的建议
个人在开发、集成时都是用了方案2,如果以后用到swarm可能会在生产环境用方案3
听你的方案,好像是想把nginx和代码放入一个容器,把php单独放入另一个容器?这种方案好像并没有什么意义,上述2、3的好处它都没有。
这篇关于php - Docker网站目录是挂载方式好还是拷贝进容器好?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文