aws / aws/aws-cdk

(assets): Dockerfiles built on ARM do not run on Linux instances

Open
#25,362 0 comments 0 reactions 0 assignees View on GitHub
@aws-cdk/assets bug effort/small p2
Dominant language
TypeScript
Stars
12.9k
Forks
4.6k
Avg merge
2d 3h
Merged PRs (30d)
83

Description

### Describe the bug

Instead of:
```
FROM node:16-alpine3.13
```

Use:
```
FROM --platform=linux/amd64 node:16-alpine3.13
```

If building on an ARM machine, excluding `--platform` will result in an obscure deployment error.

### Expected Behavior

success

### Current Behavior

Deployment error

### Reproduction Steps

Run the EKS Integration test `integ.eks-service-account-sdk-call` with

```
FROM public.ecr.aws/docker/library/node:16-alpine3.13
```

at the top of the dockerfile.

### Possible Solution

_No response_

### Additional Information/Context

_No response_

### CDK CLI Version

2.76.0

### Framework Version

_No response_

### Node.js Version

16

### OS

OSX

### Language

Typescript, Python, .NET, Java, Go

### Language Version

_No response_

### Other information

_No response_

Contributor guide

Open the contributing guide

Research direction

Start with the Dockerfile used by the integ.eks-service-account-sdk-call EKS integration test and inspect how its Node image is built on ARM. Reproduce the deployment failure with the stated public ECR image, then verify that an ARM-built image deploys successfully to a Linux instance and that the integration test passes.

Written by the indexing model from the issue text.

Assessment

Tech stack
aws, docker, node.js
Domain
cloud, infrastructure
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.