我有一台Jenkins服务器负责构建和部署我的所有微服务。但是,这些微服务中的每一个都需要不同版本的库来构建和部署。在Jenkins中分离这种构建环境的最佳方法是什么?是用奴隶吗?有没有涉及Docker的解决方案?
答案 0 :(得分:1)
不确定库是python,ruby还是其他库。使用python
作为示例。
为每个应用程序构建单独的requirements.txt
,在requirements.txt中,您可以为每个库定义版本。
https://pip.readthedocs.io/en/1.1/requirements.html
MyApp
Framework==0.9.4
Library>=0.2
在Jenkins中,安装名为shiningpanda
的插件,使用自己的构建环境在virtualenv builder
中定义作业。
pip install -r requirements.txt
# run your application here.
如果您的应用程序是ruby,java或其他应用程序,您应该可以找到类似的插件。
答案 1 :(得分:0)
每个微服务都应该是自己的构建工作。 Jenkins将每个作业的工作区分开,因此它们不应相互覆盖。理想情况下,每个微服务都在自己的源代码存储库或子文件夹中。在Jenkins的工作定义中,您可以指向每个特定的微服务仓库。 HTH。