That description seems like a bug to me, though I can't see anything in the
Docker scripts that helps me understand where the problem would be.  If I
understand your description correctly, you need both the init.groovy.d
scripts and the install-plugins.sh call before you see the problem.  The
groovy scripts seem to be making standard calls to load and save
configuration, and the install-plugins.sh script doesn't seem to make any
changes to the root config.xml file.

I believe the https://github.com/jenkinsci/docker repository has a place
for bug reports.  You probably want to submit a detailed description there,
in hopes one of the maintainers is able to help.

Mark Waite

On Wed, Dec 28, 2016 at 8:39 AM Stefan Rademacher <[email protected]> wrote:

> Thanks for your reply. I tried to narrow things down:
>
> A simple Dockerfile, that only copies "my" config.xml to
> /usr/share/jenkins/ref/ works fine. The config.xml is kept unmodified as
> expected.
> (The only thing, that is different between "my" config.xml and a default
> config.xml is the line <disableSignup>false</disableSignup>, which is true
> by default.)
> FROM jenkins:alpine
> COPY config.xml /usr/share/jenkins/ref/
> See
> https://github.com/sradi/jenkins-provisioning-problem/tree/5eea71d967cba618884aafb2b74245f75d0900e8
>
> Adding some scripts to init.groovy.d (change number of executors and
> create a default user 'admin')... Still everything works as expected.
> See
> https://github.com/sradi/jenkins-provisioning-problem/tree/12a431ccac229b3d24f5404e0aedc7d02810a8b1
>
> Additionally run 'install-plugins.sh'... PROBLEM OCCURS: The config.xml is
> unexpectedly modified (disableSignup is reset to 'true').
> FROM jenkins:alpine
> RUN /usr/local/bin/install-plugins.sh matrix-auth
> COPY init.groovy.d/* /usr/share/jenkins/ref/init.groovy.d/
> COPY config.xml /usr/share/jenkins/ref/
> See
> https://github.com/sradi/jenkins-provisioning-problem/tree/e073854ecd0e017d53f804c45a971399080efb46
>
> When I only keep the plugin installation in my Dockerfile and remove any
> init script, the problem again, does NOT occur.
> See
> https://github.com/sradi/jenkins-provisioning-problem/tree/d1a8b5a70016701db2559804896a77921b67ab17
>
> *Summary*: As soon as I use an init script, that e. g. changes my numer
> of executors AND use install-plugins.sh in my Dockerfile, the problem
> occurs.
>
> The problem can be reproduced, if you checkout the different commits of
> the repository, mentioned above, and run the following commands:
> docker build --rm -t jenkinsproblem:latest .
> docker run -p 8080:8080 -p 50000:50000 -d --name jenkinsproblem_1
> jenkinsproblem
> # run this several times, until you see, that numExecutors is changed to
> '0'. If 'disableSignup' changed from 'false' to 'true' the problem is
> reproduced.
> docker exec jenkinsproblem_1 cat /var/jenkins_home/config.xml
>
> Hope, anyone can help me. Is this a bug?
>
> Thanks a lot and best regards
> Stefan
>
>
>
> Am Montag, 19. Dezember 2016 17:59:21 UTC+1 schrieb Mark Waite:
>
> Since you're adding the configuration in your Dockerfile, it should be
> there when the docker image is created.  Since you can see it for the first
> few seconds in the running image, I think that means the jenkins.sh startup
> process which copies from "ref" to "/var/jenkins_home" did what it was
> expected to do (though there is a risk you're seeing it before jenkins.sh
> copies in the file from ref/config.xml).
>
> Since a change is happening after jenkins.sh has copied the ref content
> into the runtime location, I assume it must be something other than the
> jenkins.sh startup process which is replacing your modified ref/config.xml
> file with a different config.xml file.  However, I don't know of anything
> after that which could make that type of change.
>
> Are you entirely sure that the modified file is in the /var/jenkins_home
> directory even after the jenkins.sh script has run?
>
> I regularly use a modified config.xml to configure a Jenkins Docker
> instance, and it has worked quite well for me.  If you'd like to compare
> how mine is configured, you could look at
> https://github.com/MarkEWaite/docker/blob/lts-with-plugins/ref/config.xml
>  .
>
> Thanks,
> Mark Waite
>
> On Mon, Dec 19, 2016 at 12:27 AM Stefan Rademacher <[email protected]>
> wrote:
>
> Hi there,
>
> I am currently working on a Docker image, that is derived from
> jenkins:alpine.
> In my Dockerfile I copy a config.xml in the the reference content
> directory (/usr/share/jenkins/ref) and add some xml content with
> Ansible-XML. (The content added, is a cloud configuration for a Docker host)
>
> After starting my container, I can see my config.xml in /var/jenkins_home
> for a couple of seconds.
> After that, it is overwritten with a default config.xml. This seems to
> happen, some time during the start of the server. The problem cannot even
> be solved by using the filename config.xml.override, as suggested in the
> docs of the official docker image.
>
> Weirdly, I can’t reproduce this error, when I start Jenkins without
> docker. In that case, my custom config.xml is kept as is on the first start
> of Jenkins.
>
> In Jenkins.java (
> https://github.com/jenkinsci/jenkins/blob/3e2e01717976a1f1221874bfd576429c5c48b8a6/core/src/main/java/jenkins/model/Jenkins.java#L3015)
> I can’t find anything, that explains the overwriting of my config.xml.
>
> Does anyone have an idea, why this happens?
>
> Thanks and best regards
> Stefan Rademacher
>
> --
> 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/3CA43885-85DD-4530-9FC8-9F2465F949FD%40gmail.com
> <https://groups.google.com/d/msgid/jenkinsci-users/3CA43885-85DD-4530-9FC8-9F2465F949FD%40gmail.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/8027cc17-e759-498f-acf8-4bb512d92851%40googlegroups.com
> <https://groups.google.com/d/msgid/jenkinsci-users/8027cc17-e759-498f-acf8-4bb512d92851%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/CAO49JtFmi9ERf1%2Bj8-hZw0%3DT33ZdfOQswx%3DvB6R7n_d4p-fTEA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to