GitLab CI/CD
This example uses GitLab CI/CD to build the Earthly target +build
.
# .gitlab-ci.yml
services:
- docker:dind
variables:
DOCKER_HOST: tcp://docker:2375
FORCE_COLOR: 1
EARTHLY_EXEC_CMD: "/bin/sh"
image: earthly/earthly:v0.7.23
before_script:
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
earthly:
stage: build
script:
- earthly --ci --push -P +build
Note that in this particular configuration, the earthly/earthly
image will first start BuildKit under the same container via the image's entrypoint script; however by setting EARTHLY_EXEC_CMD=/bin/sh
, the /usr/bin/earthly-entrypoint.sh
script will present a shell rather than call the earthly binary. This bootstrapping occurs before the before_script
portion of the gitlab job executes.
In order to configure a registry mirror, users will need to configure a multi-line string for EARTHLY_ADDITIONAL_BUILDKIT_CONFIG
under the variables
section. For example:
variables:
EARTHLY_ADDITIONAL_BUILDKIT_CONFIG: |-
[registry."docker.io"]
mirrors = ["registry-mirror.example.com"]
A full example is available on GitLab.
For a complete guide on CI integration see the CI integration guide.
Last updated
Was this helpful?