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] > <javascript:>> 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] <javascript:>. >> 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. For more options, visit https://groups.google.com/d/optout.
