Skip to content

Automate docker-compose.yml update on new releases #69

@max-tet

Description

@max-tet

Context

The top-level docker-compose.yml in this repo serves two purposes:

  1. Example / self-hosting deployment reference.
  2. Source of truth for the docker-compose bundled into freeshard-controller core-version directories (freeshard-controller-backend/data/core-versions/vN/).

Today, the image tag in docker-compose.yml is bumped manually via just set-version X.Y.Z as part of the release process. The traefik tag and other service versions (postgres, web-terminal) drift without an automated signal.

Problem

Manual sync means:

  • freeshard-controller core-versions lag behind shard_core's reference compose (e.g. traefik still pinned to v2.6 in controller v8 while shard_core moved to v3.6 around 0.35.6).
  • Easy to forget dependency bumps (postgres major version, traefik major version) when cutting a shard_core release.
  • No enforcement that the example compose matches what shard_core was tested against.

Proposal

On new release (tag push or release published), run automation that:

  1. Validates docker-compose.yml service image tags match expected versions (shard_core tag == release tag; traefik/postgres tags match a declared baseline).
  2. Optionally auto-bumps web-terminal image tag to latest web-terminal release.
  3. Publishes the compose as a release artifact so freeshard-controller can fetch it deterministically (ties into the sync issue in freeshard-controller).

Acceptance

  • CI check fails if docker-compose.yml drifts from expected service versions.
  • Release workflow attaches docker-compose.yml to the GitHub release.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions