Skip to content

Native multi-architecture Docker build support (amd64 + arm64) via buildx #4628

@leadvic

Description

@leadvic

What problem will this feature address?

Currently, Dokploy builds Docker images only for linux/amd64 architecture. When building on an x86 machine and deploying to an ARM VM (e.g., Raspberry Pi, ARM64 server), containers fail with exec format error because the binaries are incompatible with the ARM architecture.

Describe the solution you'd like

Add native multi-architecture Docker build support using docker buildx with the following options:

  1. UI option in Application settings:

    • Add a "Build Architecture" field in Advanced settings
    • Options: amd64 only, arm64 only, multi-arch (amd64 + arm64)
    • When multi-arch is selected, Dokploy runs:
      docker buildx create --name multiarch --use
      docker buildx build --platform linux/amd64,linux/arm64 -t <image> --push .
  2. Option to use a buildx builder with native ARM support:

    • Allow specifying a custom buildx builder name
    • Support for external build servers with native ARM hardware (no QEMU)
  3. Registry compatibility:

    • Ensure the build push creates a multi-arch manifest (Docker Hub/GHCR compatible)
    • Dokploy deployment automatically pulls the correct architecture variant based on the target host
  4. Performance optimization:

    • Detect if the build server has native ARM support and skip QEMU when possible
    • Provide build caching for multi-arch builds to reduce rebuild time

Describe alternatives you've considered

  1. Build externally with buildx and deploy via Dokploy:

    • Manually build with docker buildx on x86 (with QEMU) or CI with native ARM
    • Push multi-arch image to registry
    • Configure Dokploy to use the pre-built image (not building from source)
    • Problem: Requires external CI/build pipeline, loses Dokploy's native build workflow
  2. Use a dedicated ARM build server:

    • Set up a separate ARM VPS as Dokploy build server
    • Configure Dokploy to use that server for builds
    • Problem: Still requires manual setup, extra cost, and doesn't integrate multi-arch in UI

Will you send a PR to implement it?

No

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    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