Deployment docker映像是否应该与代码绑定?
我们正在构建一个SaaS应用程序。我对可用性没有太高的要求(目前-此应用程序)。它主要用于特定的时区,并且仅用于商业目的,因此计划在凌晨3点重新启动应该不会有任何问题 它是一个ASP.NET应用程序,使用fastcgi服务器在mono中运行。由于安全原因,每个客户都将部署自己的应用程序。这将使用docker容器完成,前面有一个Nginx服务器,根据URL分发请求。对我来说,部署它的可能方式有:Deployment docker映像是否应该与代码绑定?,deployment,nginx,mono,continuous-integration,docker,Deployment,Nginx,Mono,Continuous Integration,Docker,我们正在构建一个SaaS应用程序。我对可用性没有太高的要求(目前-此应用程序)。它主要用于特定的时区,并且仅用于商业目的,因此计划在凌晨3点重新启动应该不会有任何问题 它是一个ASP.NET应用程序,使用fastcgi服务器在mono中运行。由于安全原因,每个客户都将部署自己的应用程序。这将使用docker容器完成,前面有一个Nginx服务器,根据URL分发请求。对我来说,部署它的可能方式有: 仅使用fcgi服务器创建docker映像,并从装入点运行代码 使用fcgi服务器和代码创建docker
- 更新代码更容易,因为docker容器可以继续运行
- 配置可以与代码捆绑在一起
- 我可以很容易地(如果我想的话)为特定的客户添加一些小的更改
- 所有内容都在一个映像中,不需要处理其他文件,只需将其拉出来并运行即可
- 除了运行的容器之外,还有许多客户的文件夹
- 配置不能在映像中(或者可以吗?-我是否应该为每个客户使用其配置创建特定映像?=>每个客户的其他文件
- 更新一个容器比较困难,因为我需要重新启动它——但这并不是什么大问题,正如开头所述
我找不到docker的任何最佳实践可以涵盖类似的场景。您的应用程序的依赖项很可能依赖于代码,因此您有时仍需要重建映像并重新启动容器(每当添加新的依赖项时) 这意味着您将有两个升级工作流:
- 一个只更新代码的程序(当没有依赖项更改时)
- 您也可以在其中更新映像,并重新启动容器(当存在依赖项更改时)
最终,Docker是,因此打包应用程序(即在图像上捆绑代码)似乎是更好的使用方法