CircleCI Ideas

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.

  • Avatar32.5fb70cce7410889e661286fd7f1897de Guest
  • Feb 22 2019
  • Taking votes
  • Attach files
  • Avatar40.8f183f721a2c86cd98fddbbe6dc46ec9
    Guest 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.

  • Avatar40.8f183f721a2c86cd98fddbbe6dc46ec9
    Guest 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

    ```

  • Avatar40.8f183f721a2c86cd98fddbbe6dc46ec9
    Guest 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)
  • Avatar40.8f183f721a2c86cd98fddbbe6dc46ec9
    Guest 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?

  • Avatar40.8f183f721a2c86cd98fddbbe6dc46ec9
    Guest 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.

  • Avatar40.8f183f721a2c86cd98fddbbe6dc46ec9
    Guest 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.

  • Avatar40.8f183f721a2c86cd98fddbbe6dc46ec9
    Guest 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.

  • Avatar40.8f183f721a2c86cd98fddbbe6dc46ec9
    Guest 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. 

  • Avatar40.8f183f721a2c86cd98fddbbe6dc46ec9
    Guest commented
    October 25, 2019 13:57

    Yes, please!

  • Avatar40.8f183f721a2c86cd98fddbbe6dc46ec9
    Guest commented
    October 27, 2019 08:25

    +1 definitely a good one

  • Avatar40.8f183f721a2c86cd98fddbbe6dc46ec9
    Guest 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.

  • Avatar40.8f183f721a2c86cd98fddbbe6dc46ec9
    Guest commented
    November 28, 2019 16:05

    +1 : Yes, please

  • Avatar40.8f183f721a2c86cd98fddbbe6dc46ec9
    Guest commented
    December 31, 2019 22:32

    +1

  • Avatar40.8f183f721a2c86cd98fddbbe6dc46ec9
    Guest 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.

  • Avatar40.8f183f721a2c86cd98fddbbe6dc46ec9
    Guest 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.

  • Avatar40.8f183f721a2c86cd98fddbbe6dc46ec9
    Guest commented
    21 Jan 23:20

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

  • Avatar40.8f183f721a2c86cd98fddbbe6dc46ec9
    Guest commented
    13 Mar 16:21

    +1

  • Avatar40.8f183f721a2c86cd98fddbbe6dc46ec9
    Guest commented
    17 Mar 12:46

    +1 for supporting ARM64 architecture

  • Avatar40.8f183f721a2c86cd98fddbbe6dc46ec9
    Guest 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

  • Avatar40.8f183f721a2c86cd98fddbbe6dc46ec9
    Guest 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.

  • Avatar40.8f183f721a2c86cd98fddbbe6dc46ec9
    Guest 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