Skip to content

Docker Compose: Dedicated Build Server Support #4148

@farzanshibu

Description

@farzanshibu

What problem will this feature address?

When deploying Docker Compose applications, image builds currently happen on the same server used for runtime deployment. This creates a few issues:

  • Build workloads consume CPU, memory, and disk I/O needed by production workloads.
  • Large builds can slow down or destabilize the target runtime server.
  • Teams cannot separate build infrastructure from runtime infrastructure.
  • Multi-server setups cannot route build steps to a better-suited machine.

Describe the solution you'd like

Add support for selecting a dedicated build server for Docker Compose deployments.

Proposed behavior:

  • Add an optional build server field to Docker Compose apps.
  • Run compose build and related image build steps on the selected build server.
  • Keep deployment/runtime steps on the existing target server.
  • If no build server is configured, fallback to current behavior (use deployment server).
  • Expose clear logs showing which server handled build vs deploy.
  • Validate connectivity and permissions for both servers before deployment starts.

Describe alternatives you've considered

  • Scaling the runtime server to handle both build and deploy workloads.
  • Building images externally in CI and pushing to a registry manually.
  • Using one global build server for all apps, which is less flexible than per-app configuration.
  • Keeping current behavior and optimizing build settings, which does not solve workload isolation.

Additional context

This request tracks the Docker Compose build-server work that is currently being implemented.

Scope includes:

  • Per-compose build server selection
  • Server resolution logic for build operations with fallback behavior
  • End-to-end API, worker, and deployment flow updates for compose builds
  • Migration and data model support for storing compose build server assignment

Will you send a PR to implement it?

Yes

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions