{
    "captainVersion": "2",
    "documentation": "Taken from https://docs.gitlab.com/runner/install/docker.html and https://docs.gitlab.com/runner/register/",
    "displayName": "Gitlab (runner)",
    "description": "Runner version of GitLab for CI/CD pipeline",
    "dockerCompose": {
        "version": "3",
        "services": {
            "$$cap_appname": {
                "image": "gitlab/gitlab-runner:$$cap_gitlab-runner_version",
                "notExposeAsWebApp": "true",
                "volumes": [
                    "$$cap_appname-data:/etc/gitlab-runner",
                    "/var/run/docker.sock:/var/run/docker.sock"
                ],
                "restart": "always"
            }
        }
    },
    "instructions": {
        "start": "GitLab CI/CD is the CI/CD solution integrated into GitLab. With this one-click-app, you receive a self-hosted runner for your pipelines. To enable you to build Docker Images in your pipelines, we mount /var/run/docker.sock into the container of the runner (see https://docs.gitlab.com/ee/ci/docker/using_docker_build.html#use-docker-socket-binding for more info). As a consequence, this container will have full access to all your other containers. If you don't need this functionality, feel free to manually remove the mounted Docker socket from the volumes.",
        "end": "Head over to https://docs.gitlab.com/runner/register/ to register your newly installed runner. You can run 'docker exec -ti <runner-image-name> /bin/sh' to connect to the newly created container and follow the tutorial."
    },
    "variables": [
        {
            "id": "$$cap_gitlab-runner_version",
            "label": "GitLab-Runner Version",
            "defaultValue": "v11.11.0",
            "description": "Check out their Docker page for the valid tags https://hub.docker.com/r/gitlab/gitlab-runner/tags",
            "validRegex": "/^([^\\s^\\/])+$/"
        }
    ]
}
