Skip to content

Commit 91f648b

Browse files
committed
feat(aws-ecr-assets): add support for docker build context
Add support for docker's --build-context flag in docker builds. Fixes #31598
1 parent 0d4f3fa commit 91f648b

File tree

62 files changed

+1277
-78
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

62 files changed

+1277
-78
lines changed

packages/@aws-cdk-testing/framework-integ/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
"license": "Apache-2.0",
3131
"devDependencies": {
3232
"@aws-cdk/cdk-build-tools": "0.0.0",
33-
"@aws-cdk/integ-runner": "^2.196.1",
33+
"@aws-cdk/integ-runner": "^2.197.1",
3434
"@aws-cdk/pkglint": "0.0.0",
3535
"@aws-sdk/client-acm": "3.632.0",
3636
"@aws-sdk/client-ec2": "3.632.0",
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Hello from build context!
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
FROM public.ecr.aws/docker/library/python:3.12-slim
2+
EXPOSE 8000
3+
WORKDIR /src
4+
ADD . /src
5+
COPY --from=mycontext hello.txt /src/hello.txt
6+
CMD ["python3", "index.py"]
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
#!/usr/bin/python
2+
import sys
3+
import textwrap
4+
import http.server
5+
import socketserver
6+
7+
PORT = 8000
8+
9+
# Read the file that was copied from the build context
10+
try:
11+
with open('/src/hello.txt', 'r') as f:
12+
context_message = f.read().strip()
13+
except FileNotFoundError:
14+
context_message = 'ERROR: hello.txt not found - build context may not have worked'
15+
16+
17+
class Handler(http.server.SimpleHTTPRequestHandler):
18+
def do_GET(self):
19+
self.send_response(200)
20+
self.send_header('Content-Type', 'text/html')
21+
self.end_headers()
22+
self.wfile.write(textwrap.dedent('''\
23+
<!doctype html>
24+
<html><head><title>It works</title></head>
25+
<body>
26+
<h1>Hello from the integ test container with build context</h1>
27+
<p>Message from build context: {message}</p>
28+
<img src="https://media.giphy.com/media/nFjDu1LjEADh6/giphy.gif">
29+
</body>
30+
''').format(message=context_message).encode('utf-8'))
31+
32+
33+
def main():
34+
httpd = http.server.HTTPServer(("", PORT), Handler)
35+
print("serving at port", PORT)
36+
print("message from build context:", context_message)
37+
httpd.serve_forever()
38+
39+
40+
if __name__ == '__main__':
41+
main()

packages/@aws-cdk-testing/framework-integ/test/aws-ecr-assets/test/integ.assets-docker-build-context.js.snapshot/DockerBuildContextTestDefaultTestDeployAssert7E73C929.assets.json

Lines changed: 20 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/@aws-cdk-testing/framework-integ/test/aws-ecr-assets/test/integ.assets-docker-build-context.js.snapshot/DockerBuildContextTestDefaultTestDeployAssert7E73C929.template.json

Lines changed: 36 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/@aws-cdk-testing/framework-integ/test/aws-ecr-assets/test/integ.assets-docker-build-context.js.snapshot/asset.21592aa0c60f855735949fa2ddd50ccfe5c2662eea8c60a4c95742dbc5aa3206/Dockerfile

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/@aws-cdk-testing/framework-integ/test/aws-ecr-assets/test/integ.assets-docker-build-context.js.snapshot/asset.21592aa0c60f855735949fa2ddd50ccfe5c2662eea8c60a4c95742dbc5aa3206/index.py

Lines changed: 41 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/@aws-cdk-testing/framework-integ/test/aws-ecr-assets/test/integ.assets-docker-build-context.js.snapshot/cdk.out

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/@aws-cdk-testing/framework-integ/test/aws-ecr-assets/test/integ.assets-docker-build-context.js.snapshot/integ-assets-docker-build-context.assets.json

Lines changed: 37 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)