Docker-compose is not available on arm64

Please see the following job: https://travis-ci.com/egor-tensin/fr24feed/jobs/274486752

If I switch to amd64, docker-compose is available there: https://travis-ci.com/egor-tensin/fr24feed/jobs/274487197 (the builds still fails because it’s arm64-only).

I worked around this by installing it manually using

language: minimal
os: linux
dist: bionic
arch: arm64
addons:
  apt:
    update: true
    packages:
      - python3-dev
      - python3-pip
      - python3-setuptools
      - python3-wheel
install:
  - pip3 install -IU docker-compose

(language: python wouldn’t work: "language: python" seems to force amd64), but it takes a long time and is pretty inconvenient.

I experienced the issue too, and the solution was like your one.

@Michal mentioned following comment. So if language: python wouldn’t work on arm64, what did his comment mean?

Thanks for raising this one and providing workaround solution. Such feedback is much appreciated. Right now, python packages 3.6/3.7/3.8 should be already available for arm64 builds.

@junaruga Sorry, apparently the issue with Python forcing amd64 was just me not being patient enough to wait for the “Amd64” badge to update to “Arm64” on the job page. So language: python does work. docker-compose is still missing though.

In the end, I came up with installing docker-compose manually like this:

language: python
python: '3.7'
os: linux
dist: bionic
arch: arm64
cache: pip
env:
  DOCKER_COMPOSE_VERSION: '1.25.1'
services:
  - docker
install:
  - pip3 install -IU "docker-compose==$DOCKER_COMPOSE_VERSION"

Caching makes it not quite so painful.

env:
   DOCKER_COMPOSE_VERSION: '1.25.1'

Thank you for the report.
Out of curiosity, for above your .travis.yml, You did not need "- " for the syntax like this?

env:
  - DOCKER_COMPOSE_VERSION: '1.25.1

@junaruga No, it works fine that way. It seems like it defaults to putting the variable to global that way (see examples at https://config.travis-ci.com/ref/env).

Hi @egor-tensin - thanks for testing this out and filing back a report!

docker-compose missing from arm64 - to be checked and hopefully fixed.

Hi @junaruga

It mean, that whenever uses selects

os: linux
dist: xenial #or bionic
arch: arm64
language: python
version:
  - 3.6 #versions 3.6, 3.7 and 3.8 should work correctly, as appropriate python packages for arm64 has been made available

I hope it clarifies my previous statement :slight_smile:

Hi @egor-tensin

The docker-compose support has been added to our multi-cpu images. If you give it a spin, please let us know if you run into any issues.

1 Like

Can confirm that docker-compose is there now on “arm64” images. Thanks!