Implement best practices in Docker image #1077
Merged
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.
Description
This PR implements best practices in the Docker image.
In summary, the changes do the following:
PATH
because the image builds and the container works fine without it.package.json
,tsconfig.json
andyarn.lock
files and installing the dependencies first, and then copying the source code and building the app. Because eachCOPY
andRUN
command is a new layer, this ensures that the layers for copying and installing the dependencies are cached when changes are made to the source code.www-data
user account that thehttpd
image defines.setcap
to allow non-root user accounts to bind to privileged ports (port 80 in this case) as these ports are only permitted toroot
by default. I found this solution in this article.logs
directory fromroot
towww-data
user account.Testing instructions