I use the following Dockerfiles to create a container with Jenkins in a Windows container on a Windows 10 desktop with docker for Windows version 17.03
FROM microsoft/windowsservercore RUN powershell -Command wget 'http://javadl.oracle.com/webapps/download/AutoDL?BundleId=210185' -Outfile 'C:\jreinstaller.exe' ; Start-Process -filepath C:\jreinstaller.exe -passthru -wait -argumentlist "/s,INSTALLDIR=c:\Java\jre1.8.0_91" ; del C:\jreinstaller.exe ENV JAVA_HOME c:\\Java\\jre1.8.0_91 RUN setx PATH %PATH%;%JAVA_HOME%\bin CMD [ "java.exe" ]
I am creating an image from this docker file:
docker build -t windows-java:jre1.8.0_91 .
The second Docker file that I use to install Jenkins on top of this:
FROM windows-java:jre1.8.0_91 ENV HOME /jenkins ENV JENKINS_VERSION 2.58 RUN mkdir \jenkins RUN powershell -Command "wget -Uri https://updates.jenkins-ci.org/latest/jenkins.war -UseBasicParsing -OutFile /jenkins/jenkins.war" EXPOSE 8080 EXPOSE 50000 CMD java -jar C:\\jenkins\\jenkins.war docker build -t jenkins-windows:2.0 .
Then I launch the container as follows:
docker run --name jenkinsci -p 8080:8080 -p 50000:50000 jenkins-windows:2.0
I see that the container is working fine and the logs are showing all the good
PS C:\Users\mandeep\ringba\ringba-jenkins-setup-windows\jenkins-master> docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 85ba2ef525a1 jenkins-windows:2.0 "cmd /S /C 'java -..." 8 hours ago Up 8 hours 0.0.0.0:8080->8080/tcp, 0.0.0.0:50000->50000/tcp jenkinsci
However, I cannot access the jenkins server running on http://localhost:8080 in the web browser of the host machine.
Not sure if this helps, but when I ran the docker in Linux container mode on the same computer, I was able to access the jenkins server at http://localhost:8080 using their official docker image.
source share