Skip to content

Dockerfile arm architecture #1892

Description

@PeterSurda

The buildscripts/docker/Dockerfile.bionic doesn't work on arm architecture (Apple M1, Raspberry Pi, ...).

Activity

  1. PeterSurda commented on Dec 9, 2021

    @PeterSurda
    MemberAuthor

    Update on how to deal with this:

    • it helps if you use BuildKit for building. You can enable it by export DOCKER_BUILDKIT=1 before running docker build
    • if BuildKit is enabled, add a new line with ARG TARGETARCH just after the top FROM
    • if BuildKit isn't enabled, you need to add the TARGETARCH argument into the command line when executing the command line manually
    • then the $TARGETARCH argument in the rest of the Dockerfile can be used to distinguish between amd64 and arm64. I haven't tested other platforms.
    • since Dockerfile syntax doesn't support branching, the way I found to do this is to have a per-architecture stage, for example
    # default
    ARG TARGETARCH=amd64
    
    # Intel and AMD
    FROM base AS deps-amd64
    RUN apt install bla bla
    
    # ARM
    FROM base AS deps-arm64
    RUN apt install bla bla
    
    # next stage
    FROM deps-$TARGETARCH AS travis
    RUN blabla
    
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

buildRelated to building or build system

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions