Docker Community Forums

Share and learn in the Docker community.

Exec format error in Go API docker-compose

Hi everyone,

I’ve got a strange docker-compose error since a few days. I have an api in Golang that has been running without any problems for over a year. However, since making a small change in my env file, nothing seems to work. I’ve gone back to the version that used to work, however, strangely, that stopped working too.

When running ‘docker-compose logs api’ I get the following message:

standard_init_linux.go:207: exec user process caused “exec format error”

Docker-compose version on my Mac:

  • docker-compose version 1.23.2, build 1110ad01
  • docker-py version: 3.6.0
  • CPython version: 3.6.6
  • OpenSSL version: OpenSSL 1.1.0h 27 Mar 2018

My docker-compose.yml

version: '2.0'
 
services:
    app:
        image: smebberson/alpine-nginx
        restart: always
        ports:
            - "80:80"
        volumes:
            - ./../app:/usr/html
        depends_on:
            - api

    api:
        image: golang:1.9
        env_file: .env
        command: ./pingcloud-api
        ports:
            - "5000:5000"
        working_dir: /
        volumes:
            - ./../api/pingcloud-api:/pingcloud-api
            - ./../api/resources:/resources
            - ./../api/assets:/assets
        restart: always
        depends_on:
            - api_db
        links:
            - api_db

    api_db:
        build: ./services/db
        env_file: .env
        ports:
            - "5306:3306"
        restart: always
        volumes:
            - "./../../database:/var/lib/mysql"
            - "./../api/resources/sql/init.sql:/docker-entrypoint-initdb.d/init.sql"

I’ve read a lot about this particular error and so I’ve learned that it probably has to do with the arm architecture. Since I didn’t change anything in the compose file and neither changed anything in my hardware configuration, I doubt that that is the problem. Any ideas?

Thanks in advance!