Proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for mkdir dataĬopy and paste the following contents to ~/nginx/data/nf file and save it. While you are there, let’s create conf.d directory. NGINX as Reverse ProxyĪs the diagram indicates, my plan is to have NGINX accept HTTP(S) traffic and route the traffic to the Jenkins instance via the Docker’s virtual network.Ĭreate a directory like ~/nginx mkdir ~/nginxĬopy and paste the following YAML to ~/nginx/docker-compose.yaml file and save the file. I would like to have Dockerized NGINX in front of it and route the traffic to the Jenkins so that it is easy to implement SSL certs for it. Jenkins | 07:21:23.554+0000 INFO hudson.WebAppMain$3#run: Jenkins is fully up and runningĪt this point, you could hit the Jenkins master by navigating your browser to but this is not what I want. Jenkins | 07:21:23.526+0000 INFO jenkins.InitReactorRunner$1#onAttained: Completed initialization
Jenkins | 07:21:22.248+0000 INFO #lambda$doRun$0: Finished Download metadata. Jenkins | 07:21:22.231+0000 INFO #start: Performed the action check updates server successfully at the attempt #1 Jenkins | 07:21:22.224+0000 INFO h.m.DownloadService$Downloadable#load: Obtained the updated data file for Jenkins | This may also be found at: /var/jenkins_home/secrets/initialAdminPassword Create a directory such as ~/jenkins.Ĭopy and paste the following contents in docker-compose.yaml file in ~/jenkins. We will spin up the Jenkins master using docker-compose. One thing to note is that you don’t have to add your account to docker group so you don’t have to sudo for every docker command to execute and docker-compose is bundled with Docker.app on Mac, which is nicer than the installation process on Linux.
Obviously the architecture could be applied to Windows and Linux as well. This whole things can easily fit on a laptop or a desktop.
The following diagram shows what I am envisioning. I’ve come up with a way to create your own personal Jenkins server and agent all in one macOS. Maybe your company has a different CI/CD system from what you are used to or it’s hard to be onboarded with the CI/CD system. You may be working on a personal project.