Hello, I'm trying to set up a Jenkins master to use another server as a Jenkins agent host, running Docker containers on the host for different environments.
My master is running jenkinsci/blueocean. The agent host server is running Docker with tcp://0.0.0.0:2376 open. TL;DR Question: Why isn't my ubuntu:16.04-based Docker image launching correctly, and how should I set up this environment? I can run my test pipeline on the host with the default jenkinsci/slave image, which is based on the openjdk-8:jre image. I've created my own image which is based on ubuntu:16.04, in order to create a Ubuntu build environment. I've copied in most of the jenkinsci/slave sections, to do things like get slave.jar in the right place, set up users/groups, etc. My Dockerfile is located at the bottom of this post. The issue is that, when the Master tries to provision an agent to build, I get the following error: INFO: Trying to run container for node ubuntu-1604-0001undhvwt76 from image: test:0.1 Oct 19, 2018 6:10:16 PM com.nirima.jenkins.plugins.docker.DockerTemplate doProvisionNode INFO: Started container ID dab1ac24bbad9ca00855f97306ebbcf938e7c6ce028a9c35a137989cf784d3f6 for node ubuntu-1604-0001undhvwt76 from image: test:0.1 Exception in thread "main" java.io.FileNotFoundException: /agent.log (Permission denied) at java.io.FileOutputStream.open0(Native Method) at java.io.FileOutputStream.open(FileOutputStream.java:270) at java.io.FileOutputStream.<init>(FileOutputStream.java:213) at java.io.FileOutputStream.<init>(FileOutputStream.java:162) at org.jenkinsci.remoting.engine.WorkDirManager.legacyCreateTeeStream(WorkDirManager.java:319) at org.jenkinsci.remoting.engine.WorkDirManager.setupLogging(WorkDirManager.java:288) at hudson.remoting.Launcher.run(Launcher.java:304) at hudson.remoting.Launcher.main(Launcher.java:283) When jenkinsci/slave runs, it gets the following output: INFO: Trying to run container for node test-0001uqx3pd659 from image: jenkinsci/slave Oct 19, 2018 6:14:54 PM com.nirima.jenkins.plugins.docker.DockerTemplate doProvisionNode INFO: Started container ID 4b9d599a4a516ab0f4583bce79e6c6c681b370882ea5307fd5b8a867b773cec3 for node test-0001uqx3pd659 from image: jenkinsci/slave Oct 19, 2018 6:14:56 PM hudson.slaves.NodeProvisioner$2 run INFO: Image of jenkinsci/slave provisioning successfully completed. We have now 6 computer(s) channel started Clearly my Dockerfile is missing something, but I have no idea what. I can run it with the "docker run -i --rm --name agent --init test:0.1 java -jar /usr/share/jenkins/slave.jar" and get the correct REMOTE line. Dockerfile: # Start with Docker Hub Ubuntu image FROM ubuntu:16.04 ## Install ubuntu-server USER root # These configurations are copied so that dpkg-reconfigure doesn't hang COPY --chown=root:root etc_default_keyboard /etc/default/keyboard COPY --chown=root:root etc_default_console-setup /etc/default/console-setup # RUN apt-get update RUN DEBIAN_FRONTEND=noninteractive apt-get install -y ubuntu-server ## Install wget RUN DEBIAN_FRONTEND=noninteractive apt-get install -y wget ## Install Java 8 and sshd USER root RUN DEBIAN_FRONTEND=noninteractive apt-get install -y openjdk-8-jre-headless ssh ## Setup Jenkins environment ARG user=jenkins ARG group=jenkins ARG uid=10000 ARG gid=10000 ENV HOME /home/${user} RUN groupadd -g ${gid} ${group} RUN useradd -c "Jenkins user" -d $HOME -u ${uid} -g ${gid} -m ${user} ARG VERSION=3.26 ARG AGENT_WORKDIR=/home/${user}/agent RUN curl --create-dirs -sSLo /usr/share/jenkins/slave.jar https://repo.jenkins-ci.org/public/org/jenkins-ci/main/remoting/${VERSION}/remoting-${VERSION}.jar \ && chmod 755 /usr/share/jenkins \ && chmod 644 /usr/share/jenkins/slave.jar USER ${user} ENV AGENT_WORKDIR=${AGENT_WORKDIR} RUN mkdir /home/${user}/.jenkins && mkdir -p ${AGENT_WORKDIR} VOLUME /home/${user}/.jenkins VOLUME ${AGENT_WORKDIR} WORKDIR /home/${user} ## Start the Jenkins slave process #CMD java -jar /usr/share/jenkins/slave.jar -workDir ${AGENT_WORKDIR} -- 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+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/d6e59ac2-8282-468d-a5cf-4adc7e75caf1%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.