Docker Compose on ARM64 Docker

Update 3/7/18: Added example.

This article describes how to compile and run docker compose on arm64 processor via Docker. I use Scaleways arm64 bit server offerings but this should work on any arm64 based system running Docker. I will be writing another article later on how to get docker running on Scaleways arm64 servers. Below is the source of the Dockerfile I meodified which is located at https://github.com/devcomb/dockerfiles/blob/master/compose-arm64/Dockerfile.arm64v8.

ARM32 Dockerfile can be found here. “ docker/compose” is based on “armhf/debian:wheezy” Docker image. This Debian based Docker image does have an ARM64 version “arm64v8/debian:jessie” so we will not need to compile our own. The difference between wheezy and jessie but it did not effect Dockerfile much. However, the “docker/compose” ARM32 Dockerfile uses ARM32 docker binaries which are not available for ARM64. I went with the quickest solution of using Debian’s builtin apt-get package manager to install docker. The apt-get package manager incorrectly stated I was missing so I force the installation via dpkg package manager after downloading the deb file.

wget https://github.com/docker/compose/archive/1.8.1.tar.gz
tar -xvf 1.8.1.tar.gz
cd compose-1.8.1
cp Dockerfile.armhf Dockerfile.arm64v8
# Replace in Dockerfile.arm64v8
rm -rf /var/lib/apt/lists/*
RUN curl https://get.docker.com/builds/Linux/armel/docker-1.8.3 \
-o /usr/local/bin/docker && \
chmod +x /usr/local/bin/docker
# Replace with
RUN apt-get download docker.io && \
dpkg --force-depends -i docker*.deb && \
rm docker*.deb && \
rm -rf /var/lib/apt/lists/*

The tox program test for py34 was failing so I removed it from the “tox.ini” file.

sed -i.bak “|envlist = py27,py34,pre-commit|envlist = py27,pre-commit|” tox.ini; rm tox.ini.bak

Now we can build the ARM64 docker image.

docker build -t devcomb/arm64v8-compose:1.8.1 -f Dockerfile.arm64v8 .

Update 3/7/18:

To run compose within a container you can do the follow.

docker run -ti --privileged -v /local/folder/with/yaml:/code/ -v devcomb/arm64v8-compose:1.8.1 up

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store