kubernetes-plugin: containertemplate with shell-script in entrypoint

215 views
Skip to first unread message

Sascha Vujevic

unread,
Mar 17, 2017, 7:40:20 AM3/17/17
to Jenkins Users
Hello developers,

i don't know if i use the kubernetes-plugin correct:

My jenkinsfile looks like:

podTemplate(label: 'mypod', containers: [
        containerTemplate
(name: 'maven', image: 'myOwnMavenImage:latest'', ttyEnabled: true, command: 'cat')
      ]) {

        node ('
mypod') {
            stage '
Get a Maven project'
            git '
https://github.com/jenkinsci/kubernetes-plugin.git'
            container('maven') {
                stage
'Build a Maven project'
                sh
'mvn clean install'
           
}
       
}
   
}


My Dockerfile uses a script-file as entrypoint:


run-script:


export JENKINS_HOME=/var/lib/jenkins

# Setup nss_wrapper so the random user OpenShift will run this container
# has an entry in /etc/passwd.
# This is needed for 'git' and other tools to work properly.
#
export USER_ID=$(id -u)
export GROUP_ID=$(id -g)
envsubst
< ${JENKINS_HOME}/passwd.template > ${JENKINS_HOME}/passwd
export LD_PRELOAD=libnss_wrapper.so
export NSS_WRAPPER_PASSWD=${JENKINS_HOME}/passwd
export NSS_WRAPPER_GROUP=/etc/group

exec "$@"


dockerfile:


FROM openjdk8:stable

ENV MAVEN_HOME
/usr/share/maven
ENV M2_HOME
/usr/share/maven
ENV JENKINS_HOME
=/var/lib/jenkins

COPY
./contrib/.m2 $JENKINS_HOME/.m2/
COPY
./contrib/maven $M2_HOME
COPY
./contrib/fix-permissions /usr/local/bin/fix-permissions
COPY
./contrib/passwd.template $JENKINS_HOME/passwd.template
COPY
./contrib/run /var/lib/jenkins/run

USER root

RUN yum
-config-manager --disable epel >/dev/null || : && \
    yum
-config-manager --enable rhel-7-server-ose-3.3-rpms || : && \
    INSTALL_PKGS
="nss_wrapper gettext git lsof rsync tar unzip which zip" && \
    yum install
-y --setopt=tsflags=nodocs install $INSTALL_PKGS && \
    rpm
-V $INSTALL_PKGS && \
    yum clean all
   
RUN    localedef
-f UTF-8 -i en_US en_US.UTF-8
RUN    ln
-s $M2_HOME/bin/mvn /usr/bin/mvn
RUN    chmod a
+x /usr/local/bin/fix-permissions
RUN    chown
-R 1001:0 $M2_HOME
RUN    chmod
775 $M2_HOME/bin/*
RUN    /usr/local/bin/fix-permissions $M2_HOME/bin
   
RUN chown -R 1001:0 $JENKINS_HOME && \
    chmod -R g+rw $JENKINS_HOME

USER 1001

ENTRYPOINT [
"/var/lib/jenkins/run"]

If i start the jenkins-job the pod is started with the jnlp- and the maven-container, but my shellscript in the maven-container is not used. I think thats because i use a cmd in the containertemplate of the maven-container.


If i delete the cmd an set tty to 'false' the shellskript is used but the container stops after executing the shell-skript in the maven-container.


Is there a posibility to have a long-running process in a container with executing a shell-script in the entrypoint of a container ?


Thank you for your help.

Carlos Sanchez

unread,
Mar 17, 2017, 7:46:27 AM3/17/17
to jenkins...@googlegroups.com
yes, don't use 'cmd' in the pod template so your entrypoint is executed. Your entrypoint has to be long-running, the container needs to be running all time until pod is killed


Thank you for your help.

--
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 jenkinsci-users+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/7f2d3e30-0409-4ddc-a8a5-159987246b16%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Sascha Vujevic

unread,
Mar 17, 2017, 8:01:45 AM3/17/17
to Jenkins Users
Thank you for the fast answer.

How can i achive the long running process ?

I set 'exec "$@"' in my shellscript for my entrypoint. Isn't this wright ?

Maybe you have an advice.

Thank you.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-use...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages