我在这里难过.很多这已经到位,它只是我无法弄清楚的包装.
我们有一个微服务架构,有许多独立的存储库.我们使用Docker和Docker Compose来构建和运行开发环境,它的工作非常精彩.
我的问题是如何打包主要的存储库集合.所以,如果我有一个文件夹结构,如:
\
service1
.git
Dockerfile
service2
.git
Dockerfile
service3
.git
Dockerfile
docker-compose.yml
README.md
…其中service1,service2,service3各自都是自己的git存储库.
我的第一个想法是使用git子模块,这可以工作,但是我们强制执行策略以要求开发人员分叉存储库而不是由于持续的集成约束和代码审查而在主存储库之外工作.我对使用git子模块一点也不感兴趣,甚至在我想到这个警告之前,所以替代解决方案会更受欢迎.
目前我只能想写脚本来存储存储库列表;为每个运行一个查询,看看登录的开发人员是否有每个分支,如果没有,则创建一个,然后进入主文件夹;然后启动docker-compose.这似乎是一个可怕的解决方案,足以让我可能只需要编写文档来告诉开发人员如何手动执行此过程…
思考?
谢谢你的时间 :)
>作为开发人员,我想运行1个命令项目bootstrap来引导我的环境
我建议做一些事情来优化工作流程,这对我来说非常好:
>在JSON文件中存储服务列表,其中每个服务都有“url”,“fork_url”,“name”以及docker-compose所需的其他常用属性,以了解如何处理此服务.看起来您团队中的每个团队成员都会有fork url或base repo url
>构建一个命令行应用程序(有许多选项可用 – 取决于您选择的语言,Ruby的宝石Thor,Go it的包Cobra等).通常只需几个小时即可构建一个简单的命令行应用程序结构和第一对命令,但这种类型的自动化将每天节省您的时间,您将拥有扩展命令行的基础应用程序随着您的需求增加而且该概念被证明是可行且有用的.您还将拥有一个统一的界面,可以在所有团队成员中配置您的环境,然后由团队负责维护它.
>构建项目引导命令以配置您的环境.例如,它将:
>从您的JSON文件中查看服务列表:
>如果不存在则执行fork
>克隆你的回购
>将另一个遥控器添加到您的仓库,这将代表fork(除了原点)
>将从指定目录中的模板生成docker-compose.yml