-
Notifications
You must be signed in to change notification settings - Fork 313
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
Docker Next Generation - Per language container strategy #7474
Conversation
Codecov ReportAll modified lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #7474 +/- ##
=========================================
Coverage 68.03% 68.03%
Complexity 2023 2023
=========================================
Files 344 344
Lines 16727 16727
Branches 2371 2371
=========================================
Hits 11381 11381
Misses 4363 4363
Partials 983 983
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
912e03d
to
7b4bdfa
Compare
e5ad366
to
df598bc
Compare
5773f42
to
38ed35d
Compare
9a74410
to
9991b54
Compare
0aa4b51
to
1931b80
Compare
1931b80
to
0c8e6f0
Compare
97c2df0
to
7091d83
Compare
ORT language components are built now in independent images. This enables the possibility to create custom tailored containers with only the required language components, reducing final size and improving build process. Main runtime contains Python, NodeJS, Rust, Ruby and Golang components. Other language components have their own images built, and can be included on custom containers. Signed-off-by: Helio Chissini de Castro <[email protected]>
Signed-off-by: Helio Chissini de Castro <[email protected]>
Signed-off-by: Helio Chissini de Castro <[email protected]>
Workflow dependencies relies on a single workflow, which make build pipelines for multiple docker containers complex and most of the time erratic. Move to single jobs dependency based with a internal action to check and build images if needed improve the logic of the process and allow to visually see the running pipeline. The pipeline will run on following cases: - On pull_request if .versions file is changed, but not publishing images on the registry. - On push or workflow_dispatch, publishing to defined registry. Signed-off-by: Helio Chissini de Castro <[email protected]>
Language images lives under the ort namespace to avoid clash on main organization image naming, e.g. ghcr.io/oss-review-toolkit/python versus ghcr.io/oss-review-toolkit/ort/python. Signed-off-by: Helio Chissini de Castro <[email protected]>
Signed-off-by: Helio Chissini de Castro <[email protected]>
7091d83
to
0e19bbc
Compare
Too late for a review, so just some general remarks from me:
|
Thanks for these remarks. In sum, very surprising that this was approved as-is by two (!) reviewers then. |
Docker now builds independent language images, and the final image can be assembled with ORT main binary + languages.
All images are deployed under ghcr.io registry by default.
Default runtime image contains Java, Python, Rust, Golang, NodeJS and Ruby components, and other components can be be added using the new custom-docker.sh script.
Extra components available are:
Android, Swift, Dotnet, PHP, Haskell
This closes original external PR:
Closes #7447