aws / copilot-cli

The AWS Copilot CLI is a tool for developers to build, release and operate production ready containerized applications on AWS App Runner or Amazon ECS on AWS Fargate.
https://aws.github.io/copilot-cli/
Apache License 2.0
3.53k stars 417 forks source link

[Bug]: Leaving `platform` unspecified builds for local platform not for default #5938

Open zackdotcomputer opened 2 months ago

zackdotcomputer commented 2 months ago

Description:

In a task with manifest.yml unspecified, where our target servers are amd64 and on a local machine running arm64 architecture, running copilot svc deploy causes the project to be built targeting linux/arm64 rather than the documentation-specified default of linux/x86_64. This means that the image cannot be started and the deploy fails.

Details:

I'm running an M2 Macbook Pro I am deploying from local to us-east-2

copilot version: v1.34.0 Docker version 27.2.0, build 3ab4256958 (Docker Desktop CE)

Observed result:

The process will proceed as normal, but the container will fail to start. After several failed attempts, it will roll back. The logs will just say that the core container "failed to start". No additional logs are given.

Expected result:

I would have expected the copilot svc deploy command to build for the documented default value of linux/x86_64 rather than for the local platform.

In the event that this mismatch did occur, I would have liked a more descriptive failure state.

Debugging:

I downloaded the image uploaded, used docker image inspect to verify its Architecture was incorrect, specified the platform manually to x86_64, redeployed, and observed a successful deployment.