A GitLab CI workbench ready to support a container-based pipeline.
GitLab CI allows specification of a Docker image which will be pulled and started as the first step of each job in every pipeline. For pipelines which will build and deploy Docker images, a container based on the official Docker image is best.
We have extended that with additional tools:
- BASH, curl, OpenSSL to facilitate common build operations and expectations.
- Python for docker-compose and potentially future addition of aws-cli and gcloud.
- Kubernetes environment ready: built with kubectl and helm for k8s-ing.
Why are all these things built into this one image? We might pull some of these tools out in the future, but the goal of this image is not to be a lean, single-purpose Docker image, but to provide an immutable and quick-to-load CI environment.
This is how you might start up the Container locally to explore environment assumptions:
docker run --rm -it -v /var/run/docker.sock:/var/run/docker.sock outrigger/gitlab-ci-workspace bash
The volume mount allows the container to start and manage Docker containers for the host system.
# Configuration for the GitLab CI pipeline.
# https://docs.gitlab.com/ce/ci/yaml/
image: outrigger/gitlab-ci-workbench:18
services:
- docker:18-dind
# <...>
Please email outrigger@phase2technology.com with security concerns.