-
Notifications
You must be signed in to change notification settings - Fork 81
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
Use docker environment to build the actors reproducibly #1606
Conversation
We should try to use the exact image from dockerhub. This means updating rust will require two steps, but that's not a huge deal IMO.
This lets us take advantage of docker layers.
We should get someone with a mac to reproduce this, then merge it before it gets out of date again. I've made a few changes:
|
This means it isn't possible to reproducibly build a dirty repo but... nobody wants to do that anyways. It does mean that the reproducible build won't be affected by other files in the tree.
b4d3f3a
to
2e0f0e4
Compare
I have opinions! See #1607 I've tested that it runs on a mac but only on an arm machine so can't get the same output, I do have an x86 mac in the house but it's a bit of an annoyance to get it set up for this, and those are going extinct now anyway. I'm getting this when built using my branch, I think it should be the same as this one so here it is:
|
I'm getting the same value. In terms of macos, maybe we should just add |
Attempted but didn't get all the way; the furthest I could get was using
|
no, wait, it worked with a few tweaks! on arm64 mac:
needs buildx but I think that might be pretty standard on a docker install now ..? at least I don't recall ever manually installing it, and I certainly didn't on the mac which I've only ever used docker desktop on. Included in the latest commit in #1607 |
* exclude `target` (mine was >40G when I first ran this, not needed for a container build) * extract common variables in Makefile * restore missing `all-bundles` target * make `.PHONY` readable
I'm having a lot of trouble with permission denied errors given the UID changes creating/chowning a I believe this is a "rootless" versus "root" container setup issue:
What this means is, if you have a "rootless container" setup:
|
This works with both rootless and root docker/podman modes. Otherwise, when running in rootless mode, the outer user's UID gets mapped to a temporary UID on the outside, leading to permissions issues when writing to the output directory.
I've changed it to:
I'm hoping this'll work for your case. I'm not 100% sure the owner of said volume will be correct. If not, I may need to look at the |
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.
yep, works well, permissions issues solved too 👌
Third attempt at fixing #171. All work on this PR was done by @lemmih in #634 and @ianconsolata in #865.
This isn't perfect (see #171 (comment)) but it does make it possible for end-users to reproduce the bundles built in CI as long as they have an x86 machine.
fixes #171