Jenkins节点作为docker容器

前端之家收集整理的这篇文章主要介绍了Jenkins节点作为docker容器 前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

jenkins-node是一个在其上运行作业的docker-container.在dockerized的jenkins节点中运行的jenkins作业会检查svn / git的项目,并在由该作业启动的其他docker容器中运行构建和测试.这样,jenkins-job通过“ docker run -v:…”文件/目录从已检出的项目挂载到构建容器中.这听起来像docker-in-docker,但是根据http://jpetazzo.github.io/2015/09/03/do-not-use-docker-in-docker-for-ci/,docker-in-docker在ci方面并不好.使用推荐的方法(将主机docker-socket装入jenkins-node容器),我面临的问题是build-container中已装入的文件显示为空目录.我认为这是因为这些文件在主机中未知(它们在jenkins-node容器中检出).提供–privileged标志无济于事.

但是,“邪恶”的docker-in-docker方法在这种情况下可以正常工作.我在做某事吗错误还是docker-in-docker是前往这里的方式?

最佳答案
通过“暴露docker套接字”方法,所有卷路径都将相对于主机.因此,如果您需要访问jenkins-node容器中的内容,则有两个选择:

>确保checkout目录是一个卷,并使用jenkins-node的–volumes-作为所有其他Docker容器的参数.从您的问题看来,测试套件创建的容器将在应用程序存储库中进行配置,因此这可能不是一个好选择.
>在启动jenkins-node时,将checkout目录设置为主机安装的卷-v / git / checkouts:/ path / in / jenkins-node / container.这样,文件实际上将最终存储在主机上(而不是在jenkins-node容器中),并且您将能够通过主机路径访问它们.

我还要说的是,您所引用的文章更为谨慎.仍然需要做很多事情,有时甚至有必要.这不是有史以来最糟糕的事情,只是要意识到这不是万灵丹,它确实带有一系列问题.

猜你在找的Docker相关文章