jenkins-node是一个Docker容器,用于运行任务。运行在Docker化的jenkins-node中的jenkins-job会检查svn/git项目,然后在由该任务启动的其他Docker容器中运行构建和测试。为此,jenkins-job通过"docker run -v :..."将从已检出的项目中的文件/目录挂载到构建容器中。这听起来像是在Docker中运行Docker,但根据http://jpetazzo.github.io/2015/09/03/do-not-use-docker-in-docker-for-ci/中的建议,Docker-in-Docker在CI中不好用。使用推荐方法(将主机的Docker套接字挂载到jenkins-node容器中)时,我遇到了这样的问题:构建容器中挂载的文件出现为空目录。我认为这是因为这些文件在主机中未知(它们是在jenkins-node容器中检出的)。在提供--privileged标志的情况下也无法帮助解决这个问题。
但是,“邪恶”的Docker-in-Docker方法对这种情况有效。我做错了什么还是Docker-in-Docker是解决问题的方法?
但是,“邪恶”的Docker-in-Docker方法对这种情况有效。我做错了什么还是Docker-in-Docker是解决问题的方法?