Skip to content

MultiArchitecture support #36

@gilesknap

Description

@gilesknap

We will support MultiArch in the future using the approach outlined here https://docs.docker.com/build/ci/github-actions/multi-platform/#distribute-build-across-multiple-runners.

TODO: before closing this issue write it up as an architectural decision.

In the meantime I will update the naming conventions of our native linux and cross compiled containers using these notes:

  • Native images are useful for dev because you want to be able to compile and test in a devcontainer
  • So cross compilation should probably only be used if you can't dev on the target (like RTEMS)
  • We will switch to a naming convention of
    • epics-base-developer
    • for a multi-architecture container - meaning using this will get you a container that loads on your workstation and contains epics
      already built for your workstation
  • cross compile containers will have an additional part to their name with the EPICS_TARGET_ARCH e.g.
    • epics-base-rtems-beatnik-developer
    • For the moment these will all be linux-x86 host architecture BUT could also in future be multi-arch if we really had a need for that
  • so in summary:
    • the host arch is encoded in the multi-arch container
    • the target arch is encoded in the name of the container
    • thus there is one set of multi-arch containers per target arch

RIGHT NOW this means the following changes to container names:

  • epics-base-linux-developer -> epics-base-developer: multi-arch native
  • epics-base-linux-runtime -> epics-base-runtime: multi-arch native
  • epics-base-rtems-beatnik-developer: stays - the cross compile from linux x86
  • epics-base-rtems-beatnik-runtime: stays - the cross compile from linux x86
  • epics-base-linux-x86_64-developer: REMOVE (holdover from the last iteration of this decision)
  • epics-base-linux-x86_64-runtime: REMOVE (holdover from the last iteration of this decision)
  • epics-base-linux-arm-developer: REMOVE but would mean means cross compile to linux arm 64 from linux x86
  • epics-base-linux-arm-runtime: REMOVE but would now means cross compile to linux arm 64 from linux x86

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions