Tuesday, September 24, 2019

Setup HTTP Git Server using Nginx on Docker

I was working on the kubernates executor for nextflow which appears to only able to pull the pipeline from GitHub or Bitbucket (which turns out to be not true), however, the pipeline script is proprietary and it's company's policy to house the source code on internal GHE.  Thus, I've decided to setup up a Git server just as described here, https://www.howtoforge.com/tutorial/ubuntu-git-server-installation/

(note git's own website also talked about the use of the `git-http-backend`, https://git-scm.com/book/en/v2/Git-on-the-Server-Smart-HTTP.)

Also, I'm running the nextflow script in a pod, so the git server needs to run in a pod too.

Here's the dockerfile I used to build the docker image.

The nginx config is mostly the same as the one in the howtoforge tutorial.

the run.sh file (since there's no systemd on docker, we have to launch nginx and fcgiwrap in the background

since the purpose for me is to launch nextflow, I've started fcgiwrap and nginx in the background and then launch nextflow. If you'd like to run a pod serving the files over git, you can launch run.sh as CMD in the Dockerfile and start nginx with daemon off.