Heavily based on https://github.com/jkarlosb/git-server-docker
How to run the container in port 2222 with two volumes: keys volume for public keys and repos volume for git repositories:
$ docker run -d -p 2222:22 -v ~/git-server/keys:/git-server/keys -v ~/git-server/repos:/git-server/repos <docker image>
Copy them to keys folder:
- From host: $ cp ~/.ssh/id_rsa.pub ~/git-server/keys
- From remote: $ scp ~/.ssh/id_rsa.pub user@host:~/git-server/keys
You need restart the container when keys are updated:
$ docker restart <container-id>
$ ssh git@<ip-docker-server> -p 2222
...
Welcome to git-server-docker! You've successfully authenticated, but I do not provide interactive shell access.
...
$ cd myrepo
$ git init --shared=true
$ git add .
$ git commit -m "my first commit"
$ cd ..
$ git clone --bare myrepo myrepo.git
From host:
$ mv myrepo.git ~/git-server/repos
From remote:
$ scp -r myrepo.git user@host:~/git-server/repos
$ git clone ssh://git@<ip-docker-server>:2222/git-server/repos/myrepo.git