-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Add cross-compilation for shipping service #715
Add cross-compilation for shipping service #715
Conversation
Signed-off-by: svrnm <[email protected]>
taking this out from Draft state for now. As a note: there is an alternative ways on how to structure this: Conditional stages using build arguments. By introducing a build argument (e.g. BUILDER_TYPE) one can have 2 different stages for native & cross compilation, looks like this:
The advantage is a clearer set of docker instructions per stage Which one do people prefer? |
131s vs. 105s for me. When you do a full demo build the docker log goes a bit nuts but I think that's intended with the cross compilation |
Honestly, I don't feel like the Dockerfile is that confusing as-is; I'd lean towards accepting it as stands in order to avoid adding a special case for the build scripts. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In my case it went from 990s to 255s (WSL - Ubuntu 20.04)
Great improvement!
* Fixes open-telemetry#696, Downgrades OTP (open-telemetry#698) * Use different base images for frauddetectionservice (open-telemetry#691) * Use different docker base images for frauddetection service Signed-off-by: svrnm <[email protected]> * Add entry in CHANGELOG Signed-off-by: svrnm <[email protected]> * update changelog Signed-off-by: svrnm <[email protected]> * Remove extra blank line Signed-off-by: svrnm <[email protected]> Co-authored-by: Juliano Costa <[email protected]> Co-authored-by: Carter Socha <[email protected]> * fix(paymentservice): respect temporality env var (open-telemetry#693) * fix(paymentservice): update dependencies so that temporality env var is respected * fix(changelog): add changelog entry * Add healthcheck to featureflagservice (open-telemetry#661) * Add healthcheck to featureflagservice In order to assess the health of this central service, compose should perform a check on the service. * Add changelog entry Co-authored-by: Juliano Costa <[email protected]> Co-authored-by: Carter Socha <[email protected]> * bot is broken (open-telemetry#699) Co-authored-by: Juliano Costa <[email protected]> * Fix link to the docs (open-telemetry#701) * reduce quoteservice spans (open-telemetry#702) * fixing container name nit - quote service (open-telemetry#706) * [recommendationservice] - base image, licensing and diagram update (open-telemetry#700) * update service metric requirement table (open-telemetry#707) * update service metric requirement table * add feature table * Update emailservice Dockerfile to use alpine and multistage build (open-telemetry#703) * Update emailservice Dockerfile Signed-off-by: svrnm <[email protected]> * Use alpine Signed-off-by: svrnm <[email protected]> * Add changelog Signed-off-by: svrnm <[email protected]> * newline Signed-off-by: svrnm <[email protected]> * Update CHANGELOG.md * Update .dockerignore Signed-off-by: svrnm <[email protected]> Co-authored-by: Juliano Costa <[email protected]> * Update dockerfile for adservice to use different base images (open-telemetry#705) * Enable exemplar export/display support (open-telemetry#704) * Enable exemplar export/display support Ensure the collector's prometheus endpoint produces exemplars Ensure that prometheus collects and stores exemplar data Ensure that grafana will display links to exemplars from dashboards/the explore tab * Enable exemplars for latency histogram in demo dashboard * update contributing guide (open-telemetry#711) * update contributing guide * fix lint Co-authored-by: Carter Socha <[email protected]> * Add random errors in AdService (open-telemetry#694) * feature(frontend): adding instrumentation metrics (open-telemetry#632) * feature(frontend): adding instrumentation metrics * feature(frontend): adding instrumentation metrics * updating package-lock.json * Update docker-compose.yml Co-authored-by: Marc Pichler <[email protected]> --------- Co-authored-by: Marc Pichler <[email protected]> * Update CONTRIBUTING.md (open-telemetry#720) * fix metrics import (open-telemetry#721) Signed-off-by: Pierre Tessier <[email protected]> * Update .env (open-telemetry#722) * Updated demo link for Sumo Logic (open-telemetry#718) * Add build for arm64 arch (open-telemetry#657) * Add build for arm64 arch * Add change to changelog * enable build on PR * remove build on pr --------- Co-authored-by: Juliano Costa <[email protected]> Co-authored-by: Carter Socha <[email protected]> Co-authored-by: Austin Parker <[email protected]> * [chore] - fix image version (open-telemetry#726) Remove the `v` prefix from the image version. We now publish images without this prefix. * Adds caveats to current exemplar support in the demo architecture (open-telemetry#725) Also, updates collector version: exemplars for the latency histogram produced by the span metrics processor are now getting exported for all services and endpoints, not just the first one in the metric family. Co-authored-by: Pierre Tessier <[email protected]> * Add Sentry (sentry.io) demo to README (open-telemetry#724) * Add Sentry (sentry.io) demo to README * use alpha order --------- Co-authored-by: Pierre Tessier <[email protected]> * Drop docs folder and adjust links (open-telemetry#730) * Drop docs folder and adjust links * Update PULL_REQUEST_TEMPLATE.md * Add entry to CHANGELOG.md * README: drop unused logo reference * add reflection for grpcurl (open-telemetry#735) * Add cross-compilation for shipping service (open-telemetry#715) * Add cross-compilation for shipping service Signed-off-by: svrnm <[email protected]> * Update CHANGELOG.md * Update Dockerfile --------- Signed-off-by: svrnm <[email protected]> * Ensure all http.server.duration metrics have the same description (open-telemetry#738) * Add OTel logo to README (open-telemetry#744) * rename proto package from hipstershop to oteldemo (open-telemetry#740) * prometheus: honor_labels to have the right job and instance (open-telemetry#743) Co-authored-by: Carter Socha <[email protected]> Co-authored-by: Juliano Costa <[email protected]> * Nit fix contributing guide (open-telemetry#747) --------- Signed-off-by: svrnm <[email protected]> Signed-off-by: Pierre Tessier <[email protected]> Co-authored-by: Josh Lee <[email protected]> Co-authored-by: Severin Neumann <[email protected]> Co-authored-by: Juliano Costa <[email protected]> Co-authored-by: Carter Socha <[email protected]> Co-authored-by: Marc Pichler <[email protected]> Co-authored-by: Cedric Ziel <[email protected]> Co-authored-by: Brett McBride <[email protected]> Co-authored-by: James Lawrie <[email protected]> Co-authored-by: Austin Parker <[email protected]> Co-authored-by: jack-berg <[email protected]> Co-authored-by: Oscar Reyes <[email protected]> Co-authored-by: Marc Pichler <[email protected]> Co-authored-by: Pierre Tessier <[email protected]> Co-authored-by: Pawel Brzoska <[email protected]> Co-authored-by: Abhijeet Prasad <[email protected]> Co-authored-by: Patrice Chalin <[email protected]> Co-authored-by: Jared Tan <[email protected]> Co-authored-by: Alex Boten <[email protected]> Co-authored-by: Goutham Veeramachaneni <[email protected]> Co-authored-by: Cijo Thomas <[email protected]>
* Add cross-compilation for shipping service Signed-off-by: svrnm <[email protected]> * Update CHANGELOG.md * Update Dockerfile --------- Signed-off-by: svrnm <[email protected]>
* Add cross-compilation for shipping service Signed-off-by: svrnm <[email protected]> * Update CHANGELOG.md * Update Dockerfile --------- Signed-off-by: svrnm <[email protected]>
* Add cross-compilation for shipping service Signed-off-by: svrnm <[email protected]> * Update CHANGELOG.md * Update Dockerfile --------- Signed-off-by: svrnm <[email protected]>
Changes
Related to #709, this enables cross-compilation (arm64 target on amd64 build) for the github build workflow. It brings down the build time for the shipping service on both platforms to ~6min (from 1h14min). There are 2 disadvantages two that:
I raise this as a draft PR because this only becomes valuable when other long running builds are reduced accordingly, so merging it is not yet reasonable. The purpose of the PR right now is to discuss if the disadvantages (especially the first one) are worth the effort (assuming something similar can be done for the Quote, Payment & Currency-Services)