我想就使用Docker组织项目的最佳实践提出一些建议。
假设我有项目X,它由两个主要应用程序组成,即Store和一个Product Management Application。它们是完全不同的应用程序,但它们是同一项目的一部分。他们有自己的服务,源代码,存储库和基础设施。
存储[mysql,mongodb,elasticsearch,nginx,php,app源代码] PMA [mysql,nginx,php,app源代码]
由于它们是两个不同的存储库并且有自己的docker-compose文件,如何只用一个命令运行所有内容?
我是否应该创建一个docker repo,它可以扩展docker-compose并一次性运行所有内容?
答案 0 :(得分:0)
答案 1 :(得分:0)
首先,我不建议将数据库容器化。没有很多好的用例,因为很多复制只是在几台主机上通过IO和磁盘利用来咀嚼。您还会丢失许多针对数据库/数据存储区的典型专业化和维护/管理。
创建Dockerfiles的git存储库。它使得更新系统在未来变得更加容易。我的结构通常是
/Dockerfiles
/Project
Dockerfile
(required files)
docker-compose.yml
还有一个私有注册表,但是从上面的dockerfiles构建这些图像。使管理版本变得更加容易,并促进了devops和自动部署。
你也可以创建apache / php图像。这就是我们为beadockstar / laravel所做的。
注意PHP系统上的存储。如果您需要将某些 not 的内容上传到某种类型的CDN,您需要确保将上传目录保存到/ docker主目录中(或所有swarm主机上的任何其他统一主机目录)