What is GitLab?
GitLab is a Git Hosting product, however, it is much more. It bundles multiple separate ideas into a single product:
- Git Hosting
- CI/CD Platform
- Artifact Storage
- Docker Registry
- It is Open-Source (for the Community Edition)
- It can be self-hosted
- It has native plugins to other tools (Slack, Jira, Redmine, Hipchat)
It is ideal for teams looking for a solution that not only allows you to run your own git hosting solution, but also bundle it with an open-source CI system. Not available at the moment with either Github of BitBucket.
Why I use GitLab
The honest truth is that 4 years ago, I was an avid Bitbucket user. And most of my DevOps tools that I employ now were bash scripts or Ansible playbooks that were deployed from single developer machines. However, in my current role, we have a large GitLab install and I have moved all of my personal projects into GitLab.com (the hosted solution), mainly to use the following aspects:
- Free Git Repos
- Free Team Setup
- Free Custom Container Registry
- Free CI build tools
- * All above have some limits, but for personal projects I am nowhere near the limit.
- It is self-hostable, so if you grow larger, you can move to your own install and keep growing with limited cost.
Build, Test, Store and Distribute Docker Containers
Using GitLab CI (alongside the handy GitLab CI Dockerfile template) you can build your own custom container and store it back inside GitLab registry. Wonderful! Please have a look at the project to see more. You can even see the build status inside the CI Pipelines.
Using these workflows you are able to use GitLab to create custom containers for your software and store them. In fact, this very site is being run from a custom container that is being held inside GitLab.com! Cool eh?!