Skip to content

Create GitHub Actions Workflow for Multi-Architecture Docker Image Builds (amd64/arm64) with Semantic Versioning #384

@Neophytis

Description

@Neophytis

Problem

  • Currently, no Docker images are built or uploaded to a container registry.
  • The organization does not yet have a container registry; all images are built locally every time docker compose is run.
  • This slows down developer workflows and prevents sharing/reuse of images across projects.

Proposal

  • Establish a GitHub Container Registry (GHCR) namespace at the organization scope (ghcr.io/<org>/<image>:<tag>).
  • Implement a GitHub Actions workflow to build and publish Docker images for both amd64 and arm64 architectures.
  • Use semantic versioning (vX.Y.Z) for tagging images to ensure consistency and traceability.
  • Ensure images are published to the organization scope so they can be reused across multiple repositories.

Benefits

  • 🚀 Faster developer workflows — no need to rebuild images locally for every docker compose.
  • 🛡️ Consistency — semantic version tags ensure predictable deployments.
  • 🔄 Reusability — organization-scoped images can be shared across multiple repos.
  • 📦 Foundation for future automation — registry enables CI/CD pipelines and caching.

Acceptance Criteria

  • GitHub Container Registry is enabled for the organization.
  • GitHub Actions workflow builds multi-arch images (amd64/arm64).
  • Images are tagged using semantic versioning.
  • Images are published to ghcr.io/<org>/<image>:<tag>.
  • Documentation updated to guide developers on pulling and using registry images.

Additional Notes

This workflow should leverage Docker Buildx and GitHub Actions caching to optimize build performance. Initial setup will require enabling GitHub Packages/Container Registry for the organization.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions