All Projects → tobilg → gitlab-ci-runner-marathon

tobilg / gitlab-ci-runner-marathon

Licence: MIT license
A customized Docker image for running scalable GitLab CI runners on Marathon

Programming Languages

shell
77523 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to gitlab-ci-runner-marathon

gitlab-ci-android-fastlane
Docker image for building android apps on Gitlab CI
Stars: ✭ 25 (+78.57%)
Mutual labels:  gitlab, gitlab-ci, gitlab-runner
gitlab-runner
GitLab Runner (Docker image) for ARM devices, this is a mirror repository of
Stars: ✭ 17 (+21.43%)
Mutual labels:  gitlab, gitlab-ci, gitlab-runner
gitlab-chart
Kubernetes Helm chart to deploy GitLab
Stars: ✭ 59 (+321.43%)
Mutual labels:  gitlab, gitlab-ci, gitlab-runner
gitlabby-dockerish-laravel
What happens when you Dockerize your Laravel testing environment and throw it at Gitlab CI?
Stars: ✭ 33 (+135.71%)
Mutual labels:  gitlab, gitlab-ci, gitlab-runner
podman-gitlab-runner
Use Podman as a custom executor for your Gitlab CI
Stars: ✭ 87 (+521.43%)
Mutual labels:  gitlab, gitlab-ci, gitlab-runner
gitlab-runner
Gitlab Runner on Alpine Linux [Docker]
Stars: ✭ 17 (+21.43%)
Mutual labels:  gitlab, gitlab-ci, gitlab-runner
Python Gitlab
Python wrapper for the GitLab API
Stars: ✭ 1,679 (+11892.86%)
Mutual labels:  gitlab, gitlab-ci
Gitlab Ci Local
Tired of pushing to test your .gitlab-ci.yml?
Stars: ✭ 134 (+857.14%)
Mutual labels:  gitlab, gitlab-ci
aws-autoscaling-gitlab-runner
CloudFormation template to deploy a GitLab Runner with auto-scaling on AWS.
Stars: ✭ 44 (+214.29%)
Mutual labels:  gitlab-ci, gitlab-runner
Godot Ci
Docker image to export Godot Engine games. Templates for Gitlab CI and GitHub Actions to deploy to GitLab Pages/GitHub Pages/Itch.io.
Stars: ✭ 168 (+1100%)
Mutual labels:  gitlab, gitlab-ci
Crane
⬆ A GitLab CI ready image to upgrade services in Rancher
Stars: ✭ 90 (+542.86%)
Mutual labels:  gitlab, gitlab-ci
Gitlab Ci Stack
Full CI pipeline project based on Gitlab & Gitlab CI running Docker, completely automated setup by Vagrant & Ansible, providing Let´s Encrypt certificates for private Servers, multiple Gitlab-Runners and the Gitlab Container Registry, incl. GitLab Pages
Stars: ✭ 146 (+942.86%)
Mutual labels:  gitlab, gitlab-ci
gitlab-sonar-scanner
This project is no longer maintained
Stars: ✭ 80 (+471.43%)
Mutual labels:  gitlab, gitlab-runner
Semantic Release
📦🚀 semantic-release written in go
Stars: ✭ 113 (+707.14%)
Mutual labels:  gitlab, gitlab-ci
Gitlab Dashboard
📺 TV dashboard for a global view on Gitlab Pipelines
Stars: ✭ 107 (+664.29%)
Mutual labels:  gitlab, gitlab-ci
Gitlabapiclient
GitLab API client
Stars: ✭ 138 (+885.71%)
Mutual labels:  gitlab, gitlab-ci
Lab
lab is a cli client of gitlab like hub
Stars: ✭ 94 (+571.43%)
Mutual labels:  gitlab, gitlab-ci
Gitlab Ci Monitor
A simple dashboard for monitoring GitLab CI builds. Alpha version.
Stars: ✭ 152 (+985.71%)
Mutual labels:  gitlab, gitlab-ci
gitlab-release-note-generator
A Gitlab release note generator
Stars: ✭ 88 (+528.57%)
Mutual labels:  gitlab, gitlab-ci
gitlabci-ue4
No description or website provided.
Stars: ✭ 32 (+128.57%)
Mutual labels:  gitlab-ci, gitlab-runner

gitlab-ci-runner-marathon

Build Status Docker Stars Docker Pulls

A customized Docker image for running scalable GitLab CI runners on DC/OS via Marathon.

Configuration

The GitLab runner can be configured by environment variables. For a complete overview, have a look at the docs/gitlab_runner_register_arguments.md file.

The most important ones are:

  • GITLAB_SERVICE_NAME: The Mesos DNS service name of the GitLab instance, e.g. gitlab.marathon.mesos. This strongly depends on your setup, i.e. how you launched GitLab and how you configured Mesos DNS. This is the recommended method to use with DC/OS installations of GitLab. Either this environment variable or GITLAB_INSTANCE_URL is mandatory.
  • GITLAB_INSTANCE_URL: The URL of the GitLab instance to connect to, e.g. http://gitlab.mycompany.com. Either this environment variable or GITLAB_SERVICE_NAME is mandatory.
  • REGISTRATION_TOKEN: The registration token to use with the GitLab instance. See the docs for details. (mandatory)
  • RUNNER_EXECUTOR: The type of the executor to use, e.g. shell or docker. See the executor docs for more details. (mandatory)
  • RUNNER_CONCURRENT_BUILDS: The number of concurrent builds this runner should be able to handel. Default is 1.
  • RUNNER_TAG_LIST: If you want to use tags in you .gitlab-ci.yml, then you need to specify the comma-separated list of tags. This is useful to distinguish the runner types.

Using private Docker registries with GitLab Runner

Private Docker registries can be used by adding the secret variable DOCKER_AUTH_CONFIG to your project's Settings ➔ CI/CD Pipelines settings. Have a look at the guide as well.

Run on DC/OS

This version of the GitLab CI runner for Marathon project uses Docker-in-Docker techniques, with all of its pros and cons. See also jpetazzo's article on this topic.

In the following examples, we assume that you're running the GitLab Universe package as service gitlab on the DC/OS internal Marathon instance, which is also available to the runners via the external_url of the GitLab configuration. This normally means that GitLab is exposed on a public agent node via marathon-lb. Please see the [example documentation here|https://github.com/dcos/examples/tree/master/1.8/gitlab].

Shell runner

An example for a shell runner. This enables the build of Docker images.

{
  "id": "gitlab-runner-shell",
  "container": {
    "type": "DOCKER",
    "docker": {
      "image": "tobilg/gitlab-ci-runner-marathon:v13.4.1",
      "network": "HOST",
      "forcePullImage": true,
      "privileged": true
    }
  },
  "instances": 1,
  "cpus": 1,
  "mem": 2048,
  "env": {
    "GITLAB_SERVICE_NAME": "gitlab.marathon.mesos",
    "REGISTRATION_TOKEN": "zzNWmRE--SBfeMfiKCMh",
    "RUNNER_EXECUTOR": "shell",
    "RUNNER_TAG_LIST": "shell,build-as-docker",
    "RUNNER_CONCURRENT_BUILDS": "4"
  },
  "taskKillGracePeriodSeconds": 15,
  "healthChecks": [
     {
       "path": "/metrics",
       "portIndex": 0,
       "protocol": "HTTP",
       "gracePeriodSeconds": 300,
       "intervalSeconds": 60,
       "timeoutSeconds": 20,
       "maxConsecutiveFailures": 3,
       "ignoreHttp1xx": false
     }
  ]
}

Docker runner

Here's an example for a Docker runner, which enables builds inside Docker containers:

{
  "id": "gitlab-runner-docker",
  "container": {
    "type": "DOCKER",
    "docker": {
      "image": "tobilg/gitlab-ci-runner-marathon:v13.4.1",
      "network": "HOST",
      "forcePullImage": true,
      "privileged": true
    }
  },
  "instances": 1,
  "cpus": 1,
  "mem": 2048,
  "env": {
    "GITLAB_SERVICE_NAME": "gitlab.marathon.mesos",
    "REGISTRATION_TOKEN": "zzNWmRE--SBfeMfiKCMh",
    "RUNNER_EXECUTOR": "docker",
    "RUNNER_TAG_LIST": "docker,build-in-docker",
    "RUNNER_CONCURRENT_BUILDS": "4",
    "DOCKER_IMAGE": "node:6-wheezy"
  },
  "taskKillGracePeriodSeconds": 15,
  "healthChecks": [
     {
        "path": "/metrics",
        "portIndex": 0,
        "protocol": "HTTP",
        "gracePeriodSeconds": 300,
        "intervalSeconds": 60,
        "timeoutSeconds": 20,
        "maxConsecutiveFailures": 3,
        "ignoreHttp1xx": false
      }
  ]
}

Make sure you choose a useful default Docker image via DOCKER_IMAGE, for example if you want to build Node.js projects, the node:6-wheezy image. This can be overwritten with the image property in the .gitlab-ci.yml file (see the GitLab CI docs.

Usage in GitLab CI

Builds as Docker

An .gitlab-ci.yml example of using the build-as-docker tag to trigger a build on the runner(s) with shell executors:

stages:
  - ci

build-job:
  stage: ci
  tags:
    - build-as-docker
  script:
    - docker build -t tobilg/test .

This assumes your project has a Dockerfile, for example

FROM nginx

Builds in Docker

An .gitlab-ci.yml example of using the build-in-docker tag to trigger a build on the runner(s) with Docker executors:

image: node:6-wheezy

stages:
  - ci

test-job:
  stage: ci
  tags:
    - build-in-docker
  script:
    - node --version
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].