DockerGit

How to host your private git service inside Docker

docker-gog-logo

Docker and Git are basically everywhere these days. In this blog post I will demonstrate how to put up private git service and host it inside Docker container. So, let’s start.

Quite some time now, I am very satisfied with git service named Gogs. You can find installation and more info here: https://gogs.io. Gogs is 100% open source and free of charge. All source code is available under the MIT License on GitHub.

I have Docker installed on my machine (Windows 10, but of course you can try this basically on any Linux/Mac/… based machine as well).

Docker image and container installation

First let check my local Docker images:

docker-images

As you can see, I don’t have any Gogs image with this git service. So, I need to pull it from Docker Hub with docker pull command , like this…

docker-pull-gogs

Let’s check my docker images now:

docker-images

We can start docker container based on this image.

docker-run-gogs

Here, docker run command is used with some parameters, -p -> port redirection, –name -> name of the container, and some other parameters.

My docker container should be ready and running, let’s check.

Gogs git service configuration

Now, that my docker container with Gogs service is running, I can configure it. I point my web browser to http:localhost:10080, and on the first access I need to fill some data in order to finish my installation. I need to define some basic stuff, like db access, app name, ssh ports and similar.

gogs-settings

After successful installation, I create admin user.

gogs-new-user

All done, now I can log in into my Gogs web portal and administer my git service.

Test my docker hosted git service

Before I conclude my writings, I will create new git repository and do initial commit to see if everything is working as expected. In Gogs git web portal I create new git repository, i.e.:

gogs-new-repository

Newly created repository created ok. I get all all the basic information, like shown below.

gogs-repo

Now, I can clone repository to my local desktop…

new-gogs-repo

and add some files to newly cloned repository, commit and push back to my git server.

gogs-commit

Finally, I can check my git repository for my changes.

gogs-update

Voila, I have my Gogs git server hosted and running in my docker container. Awesome.

Conclusion

Here, I presented straightforward approach how to host private git server inside docker containers. This way git service is uniformed, simple, does not require VM Hypervisors, with relatively small footprint. Furthermore, it provides all benefits related to docker based hosting.

In any case, I am firm believer that code should be hosted on some serious cloud based source code hosting providers, like GitHub or Bitbucket. Sometimes this is not possible (e.g. company policy) and private git hosting is the only option. Here, one relative easy solution is presented.

Happy coding!

Leave a Reply

Your email address will not be published. Required fields are marked *

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.