Docker image testing in GitLab CI
summary
GitLab CI builds a complex Docker image used by CERN Java apps, using Docker-in-Docker on private privileged runners and passing the built image between stages as an artifact (docker save/load), which makes the pipeline 26 jobs, ~30 minutes. Tests include lightweight desired-state checks with Goss, an end-to-end SSO flow by spinning up Keycloak plus the image and exercising redirects with curls, and a local LDAP container for auth. CI templating uses YAML anchors to run the same tests across multiple versions; migration to unprivileged runners and tools like container-structure-test and Clair are planned.
AI-written summary · about
chapters (14)
- 0:00Intro
- 2:31Features Used - Docker-in-Docker
- 3:56Features Used - Artifacts
- 5:40The Pipeline - Quick facts
- 7:28Goss - Running
- 8:14SSO Test - Concept
- 9:31SSO Test - Setup
- 9:57SSO Test - Execute
- 10:21SSO Test - Teardown
- 11:08LDAP Test - Snippet
- 11:32Scaling Pipeline to Multiple Versions of Image
- 12:21YAML Anchors/References - Concept
- 13:26YAML Anchors/References - Usage
- 14:05Future Improvements
related talks
54mUsing Docker in CI
48mHow to build solid CI-CD pipeline
02h 47mPipes on Pipelines
38mFrom dev to prod with GitLab CI
52mContinuous Delivery with Containers: The Good, the Bad, and the Ugly
22mEmbedded Software Development Efficiency Improvement with Docker and Kubernetes
31mBuilding a private CI/CD pipeline with Java and Docker in the Cloud
38mFrom Docker'fail to Dockerfile.. a true story!
