Use Docker-in-Docker or a compatible runner setup.
Section: Build and publish container images
Build image in GitLab CI
yaml
yaml
image: docker:27
services:
- docker:27-dind
variables:
DOCKER_TLS_CERTDIR: "/certs"
build_image:
stage: build
script:
- docker build -t registry.example.com/myapp:$CI_COMMIT_SHA .
- docker push registry.example.com/myapp:$CI_COMMIT_SHAExplanation
Make sure your runner and registry auth model support the chosen Docker strategy.
Learn the surrounding workflow
Compare similar commands or jump into common fixes when this command is part of a bigger troubleshooting path.
Related commands
Same sheet · prioritizing Build and publish container images
Build and push Docker image with GitHub Actions
Authenticate, build, and push to a registry.
Deploy a new image to Kubernetes
Update a deployment image and monitor rollout status.
Start PostgreSQL service for tests
Run integration tests against a service container.
Use named environments
Attach production jobs to an environment with protection rules.
Run deploy only on deployment-capable agents
Target jobs to specific Jenkins workers or labels.