Docker Community Forums

Share and learn in the Docker community.

Docker-compose on raspberry pi pulling amd64 image

I’m trying to run a influxdb in a docker container in a raspberry pi. If i do a

docker pull influxdb

It works fine. However, when I try it in a docker compose it pulls the image for amd64.

pi@raspberrypi:~/influx $ docker --version
Docker version 19.03.13, build 4484c46
pi@raspberrypi:~/influx $ docker-compose --version
docker-compose version 1.27.4, build unknown
pi@raspberrypi:~/influx $ 

Dockerfile:

FROM "influxdb/influxdb:latest"

docker-compose file:

version: "3"
services:
  db:
    build: ./influxdb

I tried already do remove all containers with

docker system prune -a

But it always keeps pulling the amd version.

I would be glad for a hint.

Nicolas

Use the official image influxdb instead, it supports ARM and ARM64. influxdb/influxdb was not updated since 5 years.

1 Like

Hi

thank you - that was easy - thought I had the official repo.

Now it works:-)

Using curl -L “https://github.com/docker/compose/releases/download/1.24.1/docker-compose-(uname -s)-(uname -m)” > docker-compose
fails on Raspbian as described in issue #6810.

The root causes are:

https://github.com/docker/compose/releases only contain releases for amd64 / x64-64.
https://hub.docker.com/r/docker/compose is not multi-arch enabled.
While issue #6810 was closed, I think this is a genuine feature request since instructions at https://docs.docker.com/compose/install/#install-as-a-container are not clear about which platforms are officially supported to run docker-compose as a container.

Two recent events may now make this worth:

The new RPi4 has real 1Gbit ethernet. It becomes a real platform for hobbyist with limited linux experience using Raspbian to host images.
Docker Hub has real native support for multi-arch images via manifest v2.
Combined with the fact that docker-compose is a core building block for orchestrating images, the lack of support on arm v7 (32 bits) and v8 (64 bits) makes the bootstrapping process options more limited than on x86 equivalent and the documentation is not clear about which options work where.

As stated at #4733 (comment), there used to be a Dockerfile.armhf. This file was deleted in #6666 by @joakimr-axis since the current one works just fine.

Describe the solution you’d like

Officially create armv7 and arm64v8 docker images to https://hub.docker.com/r/docker/compose as part of the release process.

This is essentially a process change, not a code change, since the Dockerfile is known to work on arm already. This would involve at the very least updating .circleci/config.yml.

Describe alternatives you’ve considered

Installing via pip works in the meantime but is trickier to run this process successfully for new comers with limited linux experience, especially that the documentation is misleading about what is supported and what is not. This leads to a poor user experience (UX).