Just remove the 'args' parameter, it would use environments variables

On Tue, May 1, 2018, 20:18 Hung Do <[email protected]> wrote:

> Ah I thought I could just use the JNLP from the openshift-slave-maven-centos7
> <https://hub.docker.com/r/openshift/jenkins-slave-maven-centos7/>directly.
> The end goal is to do the build with the openshift-slave-maven container
> and do some integration tests with an attached mysql container, while at
> the end also do some openshift CLI commands with the maven container. For
> example, I started with the scripted pipelines syntax first.
>
> podTemplate(label: 'maven2', serviceAccount: 'jenkins', cloud: 'openshift'
> , containers: [
>  containerTemplate(name: 'jnlp', image:
> 'docker-registry.default.svc:5000/cicd/jenkins-slave-maven-centos7:v3.9',
> alwaysPullImage: true, workingDir: '/tmp', args: '${computer.jnlpmac} ${
> computer.name}', envVars: [
>    containerEnvVar(key: 'MAVEN_MIRROR_URL', value: 'xxxxxx')
>  ]),
>  containerTemplate(name: 'mysql', image: 'mysql:5.6', alwaysPullImage:
> true, envVars: [
>    containerEnvVar(key: 'MYSQL_DATABASE', value: 'xxx'),
>    containerEnvVar(key: 'MYSQL_USER', value: 'xxx'),
>    containerEnvVar(key: 'MYSQL_PASSWORD', value: 'xxx'),
>    containerEnvVar(key: 'MYSQL_RANDOM_ROOT_PASSWORD', value: 'yes')],
> ports: [portMapping(containerPort: 3306)])], volumes: [
>  emptyDirVolume(mountPath: '/var/lib/mysql')
>  ]
>  ) {
>
> node('maven2') {
>    stage('checkout') {
>        checkout scm
>    }
>
>         stage('check java') {
>            sh "java -version"
>        }
>
> This worked out perfectly fine, I thought mapping  it 1:1 to the
> declarative + yaml format would achieve the same result, but that was not
> the case.
>
> Op dinsdag 1 mei 2018 19:55:23 UTC+2 schreef Matthew Ceroni:
>
>> Why even over ride the JNLP container? Just use the default and add
>> another container to the POD with your build tools (then you don't even
>> have to use the YAML format since you won't require any of the extended
>> benefits it provides). Then use the container step to execute in that
>> container.
>>
>> On Tuesday, May 1, 2018 at 5:53:06 AM UTC-7, Hung Do wrote:
>>>
>>> Hi everyone,
>>>
>>> I have a problem with this Jenkinsfile, which doesn't wants to build for
>>> me
>>>
>>> #!/usr/bin/env groovy
>>>
>>> pipeline {
>>>   agent {
>>>     kubernetes {
>>>       label 'maven2'
>>>       cloud 'openshift'
>>>       serviceAccount 'jenkins'
>>>       yaml """
>>> apiVersion: v1
>>> kind: Pod
>>> spec:
>>>   containers:
>>>   - name: jnlp
>>>     image: 
>>> docker-registry.default.svc:5000/cicd/jenkins-slave-maven-centos7:v3.9
>>>     imagePullPolicy: Always
>>>     workingDir: /tmp
>>>     args: ["${computer.jnlpmac} ${computer.name}"]
>>> """
>>>         }
>>>     }
>>>     stages {
>>>         stage('Check Java') {
>>>             steps {
>>>                 sh 'java -version'
>>>             }
>>>         }
>>>     }
>>> }
>>>
>>>
>>> With this Jenkinsfile, I get the following error
>>>
>>> [Pipeline] End of Pipeline
>>> groovy.lang.MissingPropertyException: No such property: computer for class: 
>>> groovy.lang.Binding
>>>         at groovy.lang.Binding.getVariable(Binding.java:63)
>>>         at 
>>> org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onGetProperty(SandboxInterceptor.java:242)
>>>         at org.kohsuke.groovy.sandbox.impl.Checker$6.call(Checker.java:288)
>>>         at 
>>> org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:292)
>>>         at 
>>> org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:268)
>>>         at 
>>> com.cloudbees.groovy.cps.sandbox.SandboxInvoker.getProperty(SandboxInvoker.java:29)
>>>         at 
>>> com.cloudbees.groovy.cps.impl.PropertyAccessBlock.rawGet(PropertyAccessBlock.java:20)
>>>         at WorkflowScript.run(WorkflowScript:18)
>>>         at 
>>> org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.call(jar:file:/var/lib/jenkins/plugins/pipeline-model-definition/WEB-INF/lib/pipeline-model-definition.jar!/org/jenkinsci/plugins/pipeline/modeldefinition/ModelInterpreter.groovy:56)
>>>         at WorkflowScript.run(WorkflowScript:3)
>>>         at ___cps.transform___(Native Method)
>>>         at 
>>> com.cloudbees.groovy.cps.impl.PropertyishBlock$ContinuationImpl.get(PropertyishBlock.java:74)
>>>         at 
>>> com.cloudbees.groovy.cps.LValueBlock$GetAdapter.receive(LValueBlock.java:30)
>>>         at 
>>> com.cloudbees.groovy.cps.impl.PropertyishBlock$ContinuationImpl.fixName(PropertyishBlock.java:66)
>>>         at sun.reflect.GeneratedMethodAccessor425.invoke(Unknown Source)
>>>         at 
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>         at java.lang.reflect.Method.invoke(Method.java:498)
>>>         at 
>>> com.cloudbees.groovy.cps.impl.ContinuationPtr$ContinuationImpl.receive(ContinuationPtr.java:72)
>>>         at 
>>> com.cloudbees.groovy.cps.impl.ConstantBlock.eval(ConstantBlock.java:21)
>>>         at com.cloudbees.groovy.cps.Next.step(Next.java:83)
>>>         at com.cloudbees.groovy.cps.Continuable$1.call(Continuable.java:174)
>>>         at com.cloudbees.groovy.cps.Continuable$1.call(Continuable.java:163)
>>>         at 
>>> org.codehaus.groovy.runtime.GroovyCategorySupport$ThreadCategoryInfo.use(GroovyCategorySupport.java:122)
>>>         at 
>>> org.codehaus.groovy.runtime.GroovyCategorySupport.use(GroovyCategorySupport.java:261)
>>>         at com.cloudbees.groovy.cps.Continuable.run0(Continuable.java:163)
>>>         at 
>>> org.jenkinsci.plugins.workflow.cps.SandboxContinuable.access$101(SandboxContinuable.java:34)
>>>         at 
>>> org.jenkinsci.plugins.workflow.cps.SandboxContinuable.lambda$run0$0(SandboxContinuable.java:59)
>>>         at 
>>> org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.GroovySandbox.runInSandbox(GroovySandbox.java:108)
>>>         at 
>>> org.jenkinsci.plugins.workflow.cps.SandboxContinuable.run0(SandboxContinuable.java:58)
>>>         at 
>>> org.jenkinsci.plugins.workflow.cps.CpsThread.runNextChunk(CpsThread.java:174)
>>>         at 
>>> org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.run(CpsThreadGroup.java:332)
>>>         at 
>>> org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.access$200(CpsThreadGroup.java:83)
>>>         at 
>>> org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:244)
>>>         at 
>>> org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:232)
>>>         at 
>>> org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$2.call(CpsVmExecutorService.java:64)
>>>         at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>>>         at 
>>> hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:112)
>>>         at 
>>> jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
>>>         at 
>>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>>>         at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>>>         at 
>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>>>         at 
>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>>>         at java.lang.Thread.run(Thread.java:748)
>>> Finished: FAILURE
>>>
>>>
>>> If I remove this part
>>>
>>> args: ["${computer.jnlpmac} ${computer.name}"]
>>>
>>>
>>> Then the Jenkinsfile gets accepted, the pod get started, but the
>>> container crashes because there are no arguments. It is the official
>>> openshift/jenkins-slave-maven-centos7:v3.9 image.
>>> If I try scripted pipelines without the YAML format, it will work if I
>>> pass the args via the containertemplate syntax.
>>>
>>> Am I doing something wrong here?
>>>
>> --
> You received this message because you are subscribed to the Google Groups
> "Jenkins Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/jenkinsci-users/2424ca0f-f4d9-48ed-ab0f-c1a90076df07%40googlegroups.com
> <https://groups.google.com/d/msgid/jenkinsci-users/2424ca0f-f4d9-48ed-ab0f-c1a90076df07%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-users/CALHFn6M87tXRw2hWv%2Bs2_O4sisT5%2BHtrvA0dw394PByW1XY9cg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to