✦ For everyone, free.

Practical knowledge for real and everyday life

Home

13 Docker CI/CD

A focused guide to Docker CI/CD, connecting core concepts with practical Docker and container operations.

Docker CI/CD covers how container images are built, tested, and published as part of an automated continuous integration and delivery pipeline, turning the manual processes of building and pushing images into a reliable, repeatable, automatically triggered workflow.

Building an Image as Part of a CI Pipeline

A pipeline step builds the application's image automatically whenever relevant code changes are pushed.

jobs:
  build:
    steps:
      - uses: actions/checkout@v4
      - run: docker build -t myapp:${{ github.sha }} .

Using the commit SHA as part of the image tag provides clear traceability between a built image and the exact source code it was built from.

Running Tests Against the Built Image

The pipeline can run the application's test suite directly against the freshly built image, ensuring tests run in an environment matching what will actually be deployed.

  test:
    needs: build
    steps:
      - run: docker run --rm myapp:${{ github.sha }} npm test
Pushing the Image to a Registry Upon Success

Once a build passes its tests, the pipeline pushes the resulting image to a registry, making it available for subsequent deployment.

  push:
    needs: test
    steps:
      - run: docker push myapp:${{ github.sha }}
Triggering a Deployment From the Pipeline

A final stage can trigger an actual deployment, pulling and running the newly published image in a target environment.

  deploy:
    needs: push
    steps:
      - run: ssh prod-server "docker pull myapp:${{ github.sha }} && docker compose up -d"
Why Docker CI/CD Matters

Automating the build, test, and publish cycle for container images removes manual, error-prone steps from the deployment process, ensuring every deployed image has been consistently built and validated through the same automated, repeatable pipeline.

Content in this section