This article represents code sample on how to setup Jenkins & GitLab using Docker containers. Please feel free to comment/suggest if I missed to mention one or more important points. Also, sorry for the typos.
Create a docker compose file such as docker-compose.yml with the code given below. Executing command such as “docker-compose up” would lead to creation of two containers, one of which hosts the Jenkins and another one hosts GitLab. The Jenkins can be accessed with URL such as http://localhost:28080. The GitLab can be accessed using URL such as http://localhost. In case of running this docker-compose file on Linux/Ubuntu, change the volume under jenkins from “- /usr/local/bin/docker:/usr/bin/docker” to “- /usr/bin/docker:/usr/bin/docker”.
version: '2' networks: prodnetwork: driver: bridge services: jenkins: image: jenkins ports: - "28080:8080" networks: - prodnetwork volumes: - /var/run/docker.sock:/var/run/docker.sock - /usr/local/bin/docker:/usr/bin/docker - /opt/jenkins/:/var/lib/jenkins/ depends_on: - gitlab gitlab: image: gitlab/gitlab-ce restart: always networks: - prodnetwork environment: GITLAB_OMNIBUS_CONFIG: | # external_url 'https://gitlab.example.com' # Add any other gitlab.rb configuration here, each on its own line ports: - "80:80" - "443:443" - "2222:22" volumes: - /opt/gitlab/config:/etc/gitlab - /opt/gitlab/logs:/var/log/gitlab - /opt/gitlab/data:/var/opt/gitlab