Reputation: 424
I'm starting the "get-started" guide from official Docker website. At the Part 4 "Share the application", I'm facing this error message when I try to run my image on the docker hub from play-with-docker.com.
WARNING: The requested image's platform (linux/arm64/v8) does not match the detected host platform (linux/amd64) and no specific platform was requested
I built the image from my apple M1 laptop:
FROM node:12-alpine
# Adding build tools to make yarn install work on Apple silicon / arm64 machines
RUN apk add --no-cache python2 g++ make
WORKDIR /app
COPY . .
RUN yarn install --producti
CMD ["node", "src/index.js"]
Upvotes: 28
Views: 45766
Reputation: 4539
I had the same error as srevinu as I was also using the tutorial which points to using the docker playground.
This sequence will build and push to docker hub so that it can be run on docker playground.
docker buildx build --platform linux/amd64,linux/arm64 -t <YOUR_DOCKERHUB_ID/getting-started --push .
(If it gives an error and suggestion about issuing a docker buildx create --use
, enter the command verbatim.)
After this command in tags
pane on docker hub, you should see two platforms listed for the image. One image for linux/amd64 and one for linux/arm64.
docker run -dp 3000:3000 --platform linux/amd64 johndavis940/getting-started
The image will run and the port icon will be functional.
Upvotes: 2
Reputation: 25119
If you want to run the image on a linux/amd64 platform, you need to build it for that platform. You can do that with docker buildx
like this and specify both your platforms
docker buildx build --platform linux/amd64,linux/arm64 -t <tag> .
Upvotes: 31