Use the linker to set rpath on just the python binary #794
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.
First build Python. Then re-build just the python executable with the linker flag
-rpath=$ORIGIN/../lib
. With this process, the python binary does not trigger a Rosetta error.This Dockerfile demonstrates that only the python executable has a runpath set on it. The Python library and other .so files that are built as part of building Python do not have a runpath on them.
Dockerfile
docker buildx build --platform=linux/amd64 --progress=plain .
Fixes #792