Docker Compose does not work on Oracle Cloud

Hello everybody,
I have code created on Docker Compose 3.9. It works fine on Google Cloud and on my PC but on Oracle Cloud it doesn’t work. I get the following error.

container-postgresql-postgis-eb | exec /bin/sh: exec format error
container-postgresql-postgis-eb | exec /bin/sh: exec format error
container-postgresql-postgis-eb | exec /bin/sh: exec format error
container-postgresql-postgis-eb | exec /bin/sh: exec format error
container-postgresql-postgis-eb exited with code 1

The only difference is hardware. On Oracle I have an Arm CPU, on Google and locally I have an Intel CPU.
Could the error depend on the type of CPU?
Do I need to change the Dockerfiles or docker-compose.yaml to solve?
To start the project I write this:

cd /home/ubuntu/ServerDockerJava01
docker-compose up --build

This is my system:

ubuntu@webserver:~/ServerDockerJava01$ hostnamectl
 Static hostname: webserver
       Icon name: computer-vm
         Chassis: vm
      Machine ID: ...
         Boot ID: ...
  Virtualization: kvm
Operating System: Ubuntu 22.04 LTS
          Kernel: Linux 5.15.0-1009-oracle
    Architecture: arm64
 Hardware Vendor: QEMU
  Hardware Model: KVM Virtual Machine

Searching the internet I found this page but it doesn’t explain how to deal with docker-compose. The article is only about Dockerfile.

Thank you

I solved it by using an ARM compatible image for each docker compose service.

1 Like