Running Jenkins slave on different OS than master (and host)

I’m trying to introduce continuous integration in an old project, and we’ve got quite specific situation – it’s possible to put the CI server only on our test server that runs on CentOS. The server has quite a lot of unused RAM and CPU capability.

However, we need to run Ant builds on Windows (this also used to be how the project did packaging before), however it turned out that not the same output (after binary compare) is produced by just using Unix versions of Java and Ant.

  • Mounting a container volume into another container on a different path
  • Volumes mounting as folders
  • Dokku Port configuration problems EC2
  • Sonarqube doesn't start from Docker
  • Shell variables in dockerfile missing in docker image labels
  • Using nginx to reverse proxy to Docker services
  • I drew up a diagram of how in my mind it could work, but I’m really wondering whether that is even possible (with already given tools).

    enter image description here

    The black part is implemented, I’m curious whether the red part could be possible. Could the Jenkins slave communicate with master on different OS?

  • Docker Container Networking with Docker-in-Docker
  • symmetricds on Docker and Kubernetes for Google Container Engine Deployment
  • Vagrant docker chef_solo provision fail on CentOS and SuSe linux
  • How does docker Images and Layers work?
  • Unable to connect to socket server running inside docker container
  • How to send log from Vagrant server to Graylog server
  • 2 Solutions collect form web for “Running Jenkins slave on different OS than master (and host)”

    It should be possible. I have a feeling you will need to play with your network settings. But if before you start changing anything see if you can start a headless slave by following these directions:

    Using VirtualBox for CentOS, it will possible to run a Windows VM on your CentOS host.

    I’m not sure you need Docker to launch your Jenkins slave.

    It maybe better to use a standard JNLP Windows service to connect your Windows slave to Dockerised Jenkins master.

    If the master is not able to view the Windows node using this method, you may have to tweak your network configuration on the Windows VM.

    But I’m not sure it’s necessary.

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.