-
Notifications
You must be signed in to change notification settings - Fork 1
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
feat: Refactor Dockerfile to better support new DevOps scenarios with Container App Jobs #18
Conversation
Current image's size is more than 2gb and containers need some time to start because of it - even if the dockerfile of this PR is multistage and multiple parallel downloads happen. My proposal is to remove the following tools:
Why? Because pipelines which need specific tools can install them, there are plenty of official and not official actions available on the marketplace - or we can build them on our own. Moreover, Dockerfile doesn't need to be updated with the latest tool version (i.e. nodejs actually sticks to v20). Furthermore, we already install things as a part of the pipeline's jobs. If a pipeline doesn't do it, it is actually an easy fix. Current draft PR contains some comments about each stage size in terms of megabytes, check them out. |
If you need to use github self hosted runner to connect to azure, it's quite sure that you need az cli :) If you don't use az cli on self hosted runner probably you don't need a self hosted runner I agree to purge:
|
Done! we saved around 500mb |
🎉 This PR is included in version 1.7.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
Please check out comments below
List of Changes
Refactor Dockerfile to make the build immutable and environment agnostic. Multi layer to use cache.
Add .dockerignore
Update pipelines to use standard tags and cache (44 seconds build!!!)
Update docker compose file
Motivation and Context
Pipelines do not need to create custom container apps with this image but they can use container app jobs in serverless mode. Jobs can monitors github repositories and be triggered when a pipelines starts.
How Has This Been Tested?
3 months of testing in IO
Screenshots (if appropriate):
Types of changes
Checklist: