问题描述
我对Kubernetes Plugin documentation中的示例有疑问:
public function scopeChildren($query)
{
return $query->where([
['role_id','>',$this->role_id],['created_by','=',$this->id],]);
}
- 根据解释,git克隆是通过默认容器
children
完成的,而不是由主服务器完成的,那么该容器如何选择运行git命令? - 容器
user
如何选择编译其他容器中的代码?$user->children()->get();
实际发生了什么? - 我正在使用Subversion,安装了Subversion插件后,我可以选择从Pod管道中的Subversion检出,所以我不了解
podTemplate(containers: [ containerTemplate(name: 'maven',image: 'maven:3.3.9-jdk-8-alpine',ttyEnabled: true,command: 'cat'),containerTemplate(name: 'golang',image: 'golang:1.8.0',command: 'cat') ]) { node(POD_LABEL) { stage('Get a Maven project') { git 'https://github.com/jenkinsci/kubernetes-plugin.git' container('maven') { stage('Build a Maven project') { sh 'mvn -B clean install' } } } } }
容器上如何使用master上的插件? / li>
解决方法
如果您不指定容器,则该步骤将在指定的“ defaultContainer”中运行;如果未指定,则默认为agent-bound / jnlp(您也可以通过更改属性来更改它),并且其中确实包含“ git” cli,这就是您checkout命令起作用的原因。
POD中的所有容器共享一个“ workspaceVolume”。
在您的情况下,所有“代理绑定”,“ maven”和“ golang”容器都将共享此工作空间卷
因此,当您触发mvn命令时,它会在“ workspaceVolume”中运行,该命令已经具有上一结帐步骤中的代码。