Support for ARM based Docker images.

An ARM-based executor for ARM-based  Docker images would allow Raspberry Pi development as well as other ARM software.

  • Guest
  • Feb 22 2019
  • Taking votes
  • Attach files
  • Sam Briggs commented
    March 16, 2019 01:09

    I am developing an application for the raspberry pi and wanted to run my tests on circle ci, inside of a raspberrypi docker container.

    In the meantime I can avoid installing packages that depend on raspberry pi hardware (RPi.GPIO). Then I can run on x86 architecture. However this of course means that I lose test/prod parity.

    Thanks for your time, and a great product.

  • Rylan Hazelton commented
    March 20, 2019 15:43

    This hack allows you to build arm docker containers in cci.  unfortunately you still can't run them as the base image from your config yaml.  hoping maybe someone at cci can update to add a setting to allow us to run the qemu command?

     

    ```

    steps:
    - checkout
    - setup_remote_docker:
    docker_layer_caching: true
    version: 18.06.0-ce
    - run:
    name: Install Deps
    command: ./install_deps.sh
    - run:
    name: Build & Publish
    command: ./build_publish.sh

    ```

  • Rylan Hazelton commented
    March 20, 2019 15:44

    err, can't edit posts here? the correct yaml is

     

     steps:
    - checkout
    - setup_remote_docker:
    - run:
    command: |
    docker run --rm --privileged multiarch/qemu-user-static:register
    docker build , # (w/ FROM from any arm like multiarch/ubuntu-core:arm64-xenial)
  • Joshua Whitley commented
    March 30, 2019 02:46

    I would like to be able to build for arm64 platforms. My company develops applications for ROS and the image arm64v8/ros:melodic fails to build as described in https://support.circleci.com/hc/en-us/articles/360018651374-Job-completes-after-Spin-up-Environment-for-non-x86-based-Docker-images-

    Is there any other work-around than the above hack?

  • George Reyes commented
    April 30, 2019 17:34

    Thank you for this suggestion. We understand how important it is for our customers to have access to a varied set of executors, including ARM-based ones. However, ARM resources are not at the top of the list of resource expansion for us right now. As we get more feedback, we will reconsider the priority of this item.

  • Elvin Tan commented
    July 22, 2019 03:52

    We wish to build and test aarch64 based docker builds on circleci.com

     

    Our target platform is AWS EC2 ARM-based instances and Odroid C2/N4 devices.

  • logoff commented
    August 11, 2019 13:22

    Definitely Raspberry Pi, Android and many other platforms run on top of ARM architectures. Please, consider adding this request to your roadmap.

  • Jonathan Backhaus commented
    September 20, 2019 22:16

    I’ll second this request. My builds are solely for arm, so I’ve been trying to get a workaround working. I would be willing to run on AWS if necessary but haven’t found sufficient guidance to help me put it together. 

  • Ron Evans commented
    October 25, 2019 13:57

    Yes, please!

  • Guest commented
    October 27, 2019 08:25

    +1 definitely a good one

  • Pablo Molina commented
    October 31, 2019 16:57

    +1 
    I'm using Raspbian, my use case is running the tests, build the dist folder and pushing everything on a different repository.
    The goal is to have a ready to use application once checked out on my raspi.
    As I required the same arch to be run directly I would love to see this feature.

  • Varun Avashia commented
    November 28, 2019 16:05

    +1 : Yes, please

  • Guest commented
    December 31, 2019 22:32

    +1

  • T L commented
    14 Jan 11:23

    ^This.  125 Billion ARM devices in the world - the software for which needs ARM support if it is developed under CI. Emulation via qemu is too slow.

  • Takahiro Tanaka commented
    16 Jan 18:08

    AWS provides Arm EC2 instances and their cost performance is very good.

    We are considering to use them on our systems but CircleCI is a blocker for that because we use CircleCI for not only just testing but as a part of our deployment process for example build a package.

  • David Simmons commented
    21 Jan 23:20

    ARM support is currently a blocker for us to officially support ARM platforms. 

  • Benjamin Zaporzan commented
    13 Mar 16:21

    +1

  • Martin Grigorov commented
    17 Mar 12:46

    +1 for supporting ARM64 architecture

  • Martin Grigorov commented
    18 Mar 09:14

    It would be cool if the following was possible: https://gist.github.com/martin-g/fc8ecab291796439157015e2f5c24843, i.e. a machine job to setup QEMU, and then any following Docker job to be executed in the machine VM

  • Emilio Fernandes commented
    18 Mar 13:28

    Many software shops are testing ARM64 servers these days. Latest ARM64 servers have similar performance as amd64 ones but consume less power, i.e. smaller bills at the end of the month.

    It would be awesome if CircleCI adds support for ARM64 architecture!

    TravisCI supports them for some time now. And Github Actions also recently added support for remote agents on ARM64 - https://github.blog/changelog/2019-12-03-github-actions-self-hosted-runners-on-arm-architectures/

    I am tasked to release arm64 packages for our software and now I will have to duplicate our config.yml into .travisci.yml for this reason.

  • Martin Grigorov commented
    26 Mar 08:55

    I was able to create a workflow based on machine executors and QEMU to build deb/rpm/apk packages for Varnish Cache for amd64 and aarch64 architectures. It could be used for any architecture supported by QEMU. The PR could be seen at https://github.com/varnishcache/varnish-cache/pull/3263