Add helper to run cargo windsock --cloud
within docker for libc compatibility reasons
#1309
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Previously I was trying to solve the windsock libc mismatch issue by moving windsock entirely into the cloud via ec2-cargo.
However once I got far enough into that approach to get things working I found it was too slow. Every time I rerun ec2-cargo I have to rebuild the world and the ec2 instance is fast but still slower than my local machine, so even incremental rebuilds are still slower.
So I looked for alternatives and settled on this approach:
Setup a long running docker instance that uses ubuntu 20.04 and run
windsock --cloud
from within there.I had previously tried cross which is a similar solution but hit so many problems that I gave up on docker entirely.
However the problem was just that cross's abstractions prevented me from running cargo windsock from within the instance.
Once I tried docker directly I found a fairly straightforward solution.
I've left optimizing the shotover project directory copy for a follow up PR, I would like to get this checked in so I can at least personally run windsock on aws again.
I might end up rolling back the ec2-cargo windsock functionality if it becomes a pain to maintain.
But it does still provide some value in that it lets us run windsock on aarch64.