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_SHA
Explanation

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.
OpenIn sheetyamlsame section
Deploy a new image to Kubernetes
Update a deployment image and monitor rollout status.
OpenIn sheetbashsame section
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.