Dockerfile: use a shell script to create a host UID/GID-based container user #2096
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.
This done to implement the following constraints:
The Docker container runs a non-root user because otherwise
Chrome/ChromeDriver are not happy as per this issue:
[🐛 Bug]: Selenium SessionNotCreatedException: "User data directory is already in use" SeleniumHQ/selenium#15327
StrictDoc runs within a container and outputs artifacts that have the
UID/GID of the host user.
The approaches that I could not make work:
Running with a default root user because of the permissions issue and
Chrome raising an error about the environment.
Using
USERinside the container and then running an image with--user $(id -u):$(id -g). With this approach, the Chrome would not be happybecause the container will be running from a user that does not have
a proper home directory.
Maybe there are better solutions but the one with the entrypoint.sh seems to be good enough.