Service: influxdb Error: no matching manifest for linux/arm/v7 in the manifest list entries

I am unable to build a plain vanilla instance of influxdb2. All my devices are Raspberry Pi 3s with 64-bit OS. The Influxdb 2.0 docker images do not have images for arm/v7… Only arm64/v8

However when I push the code, the builder is expecting an arm/v7 image.

# git push balena main:master
Enumerating objects: 28, done.
Counting objects: 100% (28/28), done.
Delta compression using up to 12 threads
Compressing objects: 100% (22/22), done.
Writing objects: 100% (22/22), 4.54 KiB | 2.27 MiB/s, done.
Total 22 (delta 12), reused 0 (delta 0)

[Info]      Starting build for iot-gateway, user myuser
[Info]      Dashboard link: https://dashboard.balena-cloud.com/apps/1392962/devices
[Info]      Building on arm03
[Info]      Pulling previous images for caching purposes...
[==================>                                ] 36%[Info]      Still Working...
[Success]   Successfully pulled cache images
[Error]     Some services failed to build:
[Error]       Service: influxdb
[Error]         Error: no matching manifest for linux/arm/v7 in the manifest list entries
[Info]      Built on arm03
[Error]     Not deploying release.
[Info]      Still Working...
[Info]      Still Working...

remote: error: hook declined to update refs/heads/master
To git.balena-cloud.com:myuser/iot-gateway.git
 ! [remote rejected] main -> master (hook declined)
error: failed to push some refs to 'myuser@git.balena-cloud.com:myuser/iot-gateway.git'

My docker-compose.yml contains:

version: '2.1'
volumes:
    influxdb2-data: {}
    influxdb2-config: {}
    mosquitto-data: {}
    mosquitto-log: {}
    data: {}
      
services:

  # Define an InfluxDB service
  influxdb:
    image: influxdb:2.0
    volumes:
      # Mount for influxdb data directory and configuration
      - influxdb2-data:/var/lib/influxdb2
      - influxdb2-config:/etc/influxdb2
    ports:
      - "8086:8086"
    environment:
      - DOCKER_INFLUXDB_INIT_MODE=setup
      - DOCKER_INFLUXDB_INIT_USERNAME=newuser
      - DOCKER_INFLUXDB_INIT_PASSWORD=supersecretpasswordfornewuser
      - DOCKER_INFLUXDB_INIT_ORG=myorg
      - DOCKER_INFLUXDB_INIT_BUCKET=mybucket
      - DOCKER_INFLUXDB_INIT_RETENTION=1w
      - DOCKER_INFLUXDB_INIT_ADMIN_TOKEN=supersecretadmintoken

I have also tried balena push

# balena push iot-gateway --emulated


   ╭────────────────────────────────────────────────────────────────────╮
   │                                                                    │
   │                 Update available 12.41.1 → 12.44.2                 │
   │                                                                    │
   │   https://github.com/balena-io/balena-cli/blob/master/INSTALL.md   │
   │                                                                    │
   ╰────────────────────────────────────────────────────────────────────╯

[Info]      Starting build for iot-gateway, user myusername
[Info]      Dashboard link: https://dashboard.balena-cloud.com/apps/1392962/devices
[Info]      Running locally emulated build
[Info]      Pulling previous images for caching purposes...
[Success]   Successfully pulled cache images
[Error]     Some services failed to build:
[Error]       Service: influxdb
[Error]         Error: no matching manifest for linux/arm/v7 in the manifest list entries
[Info]      Ran locally emulated build
[Error]     Not deploying release.
Remote build failed

The following code seems to work for development:

# balena push 4e99be8.local

But how can I release the code to run on all devices linked to balena cloud?

Hi,

Some clarifications - are you trying out the local push and it works but not the emulated or general push? Also, can you share logs from local push.

Hey there, from your description of the problem I believe your iot-gateway app in the Dashboard is set to Raspberry Pi 3 (not the 64-bit variant) even if your devices are running the Raspberry Pi 3 (64-bit) image. You can confirm this by looking at the raspberry icon in your list of apps (does it show a little 3 or a 64) and in the app architecture field (does it show armv7hf or aarch64).

I suggest creating a new app and selecting Raspberry Pi 3 (64-bit) during app creation. Then you can move your existing devices to the new app and push the release.