Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

QEMU doesn't support linux/arm64/v8 #86

Closed
rebeccaRossRobotics opened this issue Jun 20, 2023 · 1 comment
Closed

QEMU doesn't support linux/arm64/v8 #86

rebeccaRossRobotics opened this issue Jun 20, 2023 · 1 comment

Comments

@rebeccaRossRobotics
Copy link

Behaviour

I am trying to build a docker image on the linux/arm64/v8 platform through github action. under extracting available platforms this is not listed. Is this functionality going to be added soon?
My image is being run on a RaspberryPi CM4 with bulleye lite 64bit os on.

Steps to reproduce this issue

Dockerfiie to be built

ARG ros_distro=humble
FROM --platform=$BUILDPLATFORM ros:${ros_distro}

SHELL ["/bin/bash", "-c"]

ENV DEBIAN_FRONTEND=noninteractive
ENV ROS_DOMAIN_ID=200
ENV RMW_IMPLEMENTATION=rmw_cyclonedds_cpp

WORKDIR /home/$USER/mk4_ws/src
COPY . .
WORKDIR /home/$USER/mk4_ws

Expected behaviour

docker image should build with the architecture, variant and os as follows

"Architecture": "arm64",
"Variant": "v8",
"Os": "linux",

Actual behaviour

docker image is build with the architecture, variant and os as follows

"Architecture": "arm64",
"Os": "linux",

Configuration

name: cli

on:
  push:
    branches: 265-make-a-docker-image-that-is-all-self-contained-for-the-mk4_ws

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      -
        name: Checkout
        uses: actions/checkout@v3
      -
        name: Set up QEMU
        uses: docker/setup-qemu-action@v2
        with:
          image: tonistiigi/binfmt:latest
          platforms: all
      -
        name: Login to Docker Hub
        uses: docker/login-action@v2
        with:
          username: ${{ secrets.DOCKERHUB_USERNAME }}
          password: ${{ secrets.DOCKERHUB_TOKEN }}
      -
        name: Setup Docker buildx
        uses: docker/setup-buildx-action@v2
      -
        name: Build and push
        uses: docker/build-push-action@v4
        with:
          context: .
          platforms: linux/arm64/v8, linux/amd64
          file: ./Dockerfile
          push: true
          tags: rossrobotics/mk4_test:github

Logs

logs_14.zip

@crazy-max
Copy link
Member

This is not related to binfmt or BuildKit but containerd when image is pushed. Atm arm64/v8 is normalized as arm64, as like amd64/v1 is normalized as amd64. See https://github.com/containerd/containerd/blob/96de54db4385279a5f8474b5de6658f6336b6fd8/platforms/database.go#L87-L92 and also containerd/containerd#3225

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants