A git server with Nginx as the HTTP frontend and fast cgi wrapper for running the git http backend
To run a git server without any repositories configured in advance but allowing them to be saved into ./repositories
:
docker run \
-d \ # deamonize
-v `pwd`/repositories:/var/lib/git \ # mount the volume
-p "8080:80" \ # expose the port
cirocosta/gitserver-http
Now, initialize a bare repository:
cd repositories
git init --bare myrepo.git
and then, just clone it somewhere else:
cd /tmp
git clone http://localhost:8080/myrepo.git
cd myrepo
Git servers work with bare repositories. This image provides the utility of initializing some pre-configured repositories in advance. Just add them to /var/lib/initial
and then run the container. For instance, having the tree:
.
└── initial
└── initial
└── repo1
└── file.txt
and then executing
docker run \
-d \ # deamonize
-v `pwd`/initial:/var/lib/initial \ # mount the initial volume
-p "8080:80" \ # expose the port
cirocosta/gitserver-http # start git server and init repositories
will allow you to skip the git init --bare
step and start with the repositories pre-"installed" there:
git clone http://localhost/repo1.git
cd repo1 && ls
# file.txt
to run the example:
make example
This will create a git server http service on :80
. Now you can clone the sample repository:
git clone http://localhost:8080/repo1.git