Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Docker image fails to build on Apple Silicon (M1-ARM64 architecture) #82

Open
wonderbird opened this issue Jan 26, 2022 · 6 comments
Open

Comments

@wonderbird
Copy link
Contributor

When you run

docker build -t code-maat-app .

on a Mac with Apple Silicon chip, then docker fails with the following error message

ERROR [internal] load metadata for docker.io/library/clojure:alpine
...
error: failed to solve: failed to solve with frontend dockerfile.v0: failed to create LLB definition: no match for platform in manifest sha256:d7bcb938ec3e6cef737e621e83f82b6ebbf6e60ebf5e4354c2f7d5418bb7cc5c: not found

I suspect that the base image clojure:alpine is not available for the linux/arm64 architecture at the time of writing.

I wouldn't change anything in code maat for now. Instead, let's use this thread to make users aware of the issue and present workarounds for the time being.

@wonderbird
Copy link
Contributor Author

As a very slow workaround, one could run

docker buildx build --platform linux/amd64 -t code-maat-app .

This would use the Rosetta 2 emulation.

On my machine the build process took extremely long (I aborted after about 12 minutes).

@wonderbird
Copy link
Contributor Author

wonderbird commented Jan 26, 2022

I prefer the following workaround, which trades off container size against time behaviour:

  1. Change the FROM line in Dockerfile such, that the latest clojure image is used instead of the alpine version:

    FROM clojure:latest
    
  2. Build and use the docker container as usual

    docker build -t code-maat-app .
    docker run -v "$PWD":/data -it code-maat-app -l /data/hib_evo.log -c git -a authors

@jinhongeasypark
Copy link

jinhongeasypark commented Jun 15, 2022

I had exactly the same problem, and also reached the same workaround as you @wonderbird

Perhaps a fix for this will be to just make a note in the README to update from FROM clojure:alpine to FROM clojure:latest for apple silicon devices?

@mkornblum
Copy link

I just used the clojure:latest workaround as well, still working fine in 2023 (and the original issue with the alpine image is still present upstream)

@tahoemph
Copy link
Contributor

Still failing on 2024/8/19. PR: #94

@lotadcate
Copy link

I have succeeded in running code-maat in docker with the following description.
FROM clojure

According to https://github.com/Quantisan/docker-clojure/blob/master/README.md

clojure:latest (also clojure because latest is the default)

,but if I set FROM clojure:latest it fails.

These are the reports. Sorry for my poor English.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants