Public | Automated Build

Last pushed: 8 months ago
Short Description
Nginx backed git http(s) server
Full Description


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 

Now, initialize a bare repository:

  cd repositories
  git init --bare repos/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
Docker Pull Command
Source Repository