Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bobey/docker-gitlab-ci-runner
Docker gitlab ci-runner base images for php and nodejs stacks
https://github.com/bobey/docker-gitlab-ci-runner
Last synced: about 2 months ago
JSON representation
Docker gitlab ci-runner base images for php and nodejs stacks
- Host: GitHub
- URL: https://github.com/bobey/docker-gitlab-ci-runner
- Owner: bobey
- Created: 2015-03-07T17:03:45.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2016-06-07T05:59:17.000Z (over 8 years ago)
- Last Synced: 2023-03-12T01:42:30.451Z (almost 2 years ago)
- Language: Shell
- Homepage: https://registry.hub.docker.com/u/bobey/docker-gitlab-ci-runner-php/
- Size: 26.4 KB
- Stars: 30
- Watchers: 6
- Forks: 12
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Docker GitlabCI Runner images
Gitlab CI runner docker base images with ssh-key sharing.
Take care, this project is not maintained anymore and **deprecated** in favor of official [Gitlab Multi-Runner](https://gitlab.com/gitlab-org/gitlab-ci-multi-runner)
## Table of contents
- [Base Image](#base-image)
- [Build](#build)
- [Usage](#usage)
- [PHP Images](#php-images)
- [Usage](#usage-1)
- [Custom PHP configuration](#custom-php-configuration)
- [Development](#development)
- [NodeJS Image](#nodejs-image)
- [Usage](#usage-2)
- [Development](#development-1)
- [Gitlab CI setup](#gitlab-ci-setup)
- [Contributors](#contributors)## Base Image
This docker image is based on [gitlabhq/gitlab-ci-runner](https://github.com/gitlabhq/gitlab-ci-runner) image and provide a way to pass it an ssh-key or automatically
generate a new one.
This is a base image you can extend with your own stack.### Build
In order to build it, you need to execute the following commands:
```
docker build -t gitlabhq/gitlab-ci-runner github.com/gitlabhq/gitlab-ci-runner
docker build -t bobey/docker-gitlab-ci-runner github.com/bobey/docker-gitlab-ci-runner
```### Usage
```
docker pull bobey/docker-gitlab-ci-runner
```Then, you can run as many runners as you want by executing:
```
docker run \
-e CI_SERVER_URL=https://ci.example.com \
-e REGISTRATION_TOKEN=replaceme \
-e HOME=/root \
-e GITLAB_SERVER_FQDN=gitlab.example.com \
bobey/docker-gitlab-ci-runner
```If you need to pass an ssh key to the runner (a deploy key for example), use the following command:
```
docker run \
-e CI_SERVER_URL=https://ci.example.com \
-e REGISTRATION_TOKEN=replaceme \
-e HOME=/root \
-e GITLAB_SERVER_FQDN=gitlab.example.com \
-v /absolute/path/to/your/home/.ssh/id_rsa:/root/.ssh/id_rsa:ro \
bobey/docker-gitlab-ci-runner
```If you don't mount this optional volume, an ssh-key will be automatically generated and the public key will be displayed
on standard output.If you need to start a bash inside your container, use the following command:
```
docker run \
-e CI_SERVER_URL=https://ci.example.com \
-e REGISTRATION_TOKEN=replaceme \
-e HOME=/root --rm -it \
bobey/docker-gitlab-ci-runner:latest /bin/bash
```## PHP Images
We provide docker gitlab-ci runner images for php 5.4, 5.5 and 5.6 containing the following stack:
- PHP 5.x
- Git
- Composer### Usage
You can run as many runners as you want by executing:
```
docker run \
-e CI_SERVER_URL=https://ci.example.com \
-e REGISTRATION_TOKEN=replaceme \
-e HOME=/root \
-e GITLAB_SERVER_FQDN=gitlab.example.com \
-v /absolute/path/to/your/home/.ssh/id_rsa:/root/.ssh/id_rsa:ro \
bobey/docker-gitlab-ci-runner-php5.6
```In your GitlabCI, a basic phpunit job could looks like this:
```
composer install
php vendor/phpunit/phpunit/phpunit --coverage-text
```By displaying code coverage as text, you can easily extract code coverage metrics. In your project settings, under
"Test coverage parsing", just input the following regex: ` Lines:\s+(\d+.\d+\%)`.### Custom PHP configuration
All PHP images comes with the following extensions pre-installed but not enabled by default with the exception of
`xdebug`:- memcache.so
- mongo.so
- redis.so
- ssh2.so
- xdebug.soIf you need to customize the php configuration, you can add your own settings to the `ci-runner.ini` file.
For example, the following command in one of your gitlab-ci jobs will enable `mongo.so` extension:```
echo 'extension="mongo.so"' >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/ci-runner.ini
```You can of course customize any other parameter of the `php.ini` configuration file. Below command will set `Europe/Paris` as the default timezone:
```
echo 'date.timezone="Europe/Paris"' >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/ci-runner.ini
```### Composer and Github API rate limit
All PHP images comes with Composer pre-installed and ready to be used. But, as you might already know, Github API rate limit is quite often reached when building projects in CI. See what [Composer doc say about it](https://getcomposer.org/doc/articles/troubleshooting.md#api-rate-limit-and-oauth-tokens).
One way to handle this problem is to create an `auth.json` file and share it with your gitlab-ci-runners via a volume:
```json
{
"http-basic": {},
"github-oauth": {
"github.com": "GITHUB_GENERATED_TOKEN"
}
}
```Then, start your runner with an extra `-v` option:
```
docker run \
-e ...
-v /absolute/path/to/composer-auth.json:/root/.composer/auth.json:ro \
bobey/docker-gitlab-ci-runner-php5.6
```### Development
This docker image is based on bobey/docker-gitlab-ci-runner image. In order to build it, you need to execute the following
command:```
docker build -t bobey/docker-gitlab-ci-runner-php5.6 github.com/bobey/docker-gitlab-ci-runner/php/5.6
```## NodeJS Image
A docker gitlab-ci runner containing the following stack:
- NodeJS
- NPM### Usage
You can run as many runners as you want by executing:
```
docker run \
-e CI_SERVER_URL=https://ci.example.com \
-e REGISTRATION_TOKEN=replaceme \
-e HOME=/root \
-e GITLAB_SERVER_FQDN=gitlab.example.com \
-v /absolute/path/to/your/home/.ssh/id_rsa:/root/.ssh/id_rsa:ro \
bobey/docker-gitlab-ci-runner-nodejs
```### Development
This docker image is based on bobey/docker-gitlab-ci-runner image. In order to build it, you need to execute the following
commands:```
docker build -t bobey/docker-gitlab-ci-runner-php github.com/bobey/docker-gitlab-ci-runner/nodejs
```## Gitlab CI setup
By starting Gitlab CI runners through Docker, assuming you passed a valid registration token, they will automatically
add themselves to your CI instance. You should see them in the "Runners" tab.## Contributors
Many thanks to the awesome [@jubianchi](https://twitter.com/jubianchi) for its help with the base php image.