Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docked jenkins是个不错的选择?_Jenkins_Docker_Continuous Integration - Fatal编程技术网

Docked jenkins是个不错的选择?

Docked jenkins是个不错的选择?,jenkins,docker,continuous-integration,Jenkins,Docker,Continuous Integration,正如标题中所提到的,我想到了一个Docked jenkins。我有一个运行所有测试的容器,但现在我想运行一些部署作业 文件(.py、.conf、.sh)将被复制到由其他容器(应用程序容器)装入的文件夹中。正如我看到的,有些人建议不要使用docker 现在我想知道我是应该继续在容器中使用jenkins(因此我必须找到一种方法来运行部署脚本),还是更愿意在服务器上安装它 如果您正在为生产运行Docked Jenkins,最好将其卷装载到Docker主机上 我个人不喜欢docker Jenkins用于

正如标题中所提到的,我想到了一个Docked jenkins。我有一个运行所有测试的容器,但现在我想运行一些部署作业

文件(.py、.conf、.sh)将被复制到由其他容器(应用程序容器)装入的文件夹中。正如我看到的,有些人建议不要使用docker


现在我想知道我是应该继续在容器中使用jenkins(因此我必须找到一种方法来运行部署脚本),还是更愿意在服务器上安装它

如果您正在为生产运行Docked Jenkins,最好将其卷装载到Docker主机上


我个人不喜欢docker Jenkins用于生产,因为Jenkins的IP是非静态的,docker网络存在可靠性问题。对于非生产用途,我将Jenkins dockerize。

我们正在尝试在生产中对Jenkins进行容器化-能够轻松设置或移动实例的灵活性抵消了学习的痛苦,这种痛苦是:

1-一些构建作业本身是容器化的,需要在docker中运行docker。这可以通过将主机docker.sock传递到Jenkins容器中来实现。(更多阅读:)。它要求主机和Jenkins容器运行相同版本的Docker,但我可以接受


2-SSH密钥是一个更大的问题。Docker中的ssh代理转发因其不可靠性而臭名昭著,我们总是将密钥复制到容器中(忽略此问题上下文中的安全问题)。在主机上的Jenkins实例中,我们将ssh密钥放在Jenkins的主文件夹中,所有内容都可以无缝工作。但是,Docked Jenkins的主文件夹位于Docker卷中,该卷由主机系统拥有,因此密钥过于开放。我们通过将密钥复制到Jenkins家外的文件夹中,将这些密钥发送给Jenkins容器用户,然后将密钥路径添加到容器的/etc/ssh/ssh_配置中来解决这个问题。

从停靠的Jenkins实例连接到私有repos(Bitbucket)时会出现问题,在我的情况下,这与权限有关。