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.

Reply via email to