我的项目的结构是这样的:jenkins中的构建作业是从push到git触发的。作为应用程序逻辑的一部分,我启动kafka和elastic搜索示例,以便在我的测试用例中使用。
我现在遇到的问题是,当开发人员将其更改推送到git时,它会触发jenkins中的一个构建,而jenkins又会运行我们的代码,并在git中生成kafka代理localhost:9092 and ElasticSearchlocalhost:9200.
当另一个开发人员同时处理一些其他更改时,推送他的代码,它会再次触发构建作业,并尝试启动kafka/elastic search的另一个示例,但失败的例外是“port already in use”。
我正在考虑如何处理这种情况。
在docker容器中运行这些示例在某种程度上会有所帮助吗?在那种情况下,我该如何处理港口问题?
1条答案
按热度按时间hwazgwia1#
是的,停靠这些示例确实有帮助,因为您可以多次生成它们。
您可以为每个组件(包括应用程序)创建一个docker容器,然后通过链接它们或使用docker compose让它们相互通信
这样,您就不必将端口暴露于“外部”世界,而是将其保持在docker环境内部。
这样您就不会有“端口已在使用中”。在那种情况下,唯一的问题是内存。e、 g.如果对git repo进行100次推送,可能会耗尽内存。。。