-
Notifications
You must be signed in to change notification settings - Fork 2
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
Update Docker image configuration #56
Conversation
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.
👍 👍
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.
Nice cleanup!
Also switch to hardcoding the Python version in image tags instead of taking it as a build argument.
Update the versions of apt packages installed to the latest available.
This includes updating the version of Python configured in the Pipfile to match the version of Python used in the Docker image.
Ensure that the Python virtual environment created only contains packages necessary for functionality. We also do a better job of respecting the system Python environment provided by the base image. While making these edits I also consolidated some COPY statements to clean things up.
Change the operating system of the base image from Debian Bullseye to Alpine Linux 3.16. All dependencies and the `vdp_scanner.py` script are updated appropriately. The documentation and GitHub Actions workflow are also updated to support this change.
It's Linux, not LInux. Co-authored-by: dav3r <[email protected]>
40aede4
to
d0dcfcc
Compare
Also update all packages installed with apk to the latest version available on Alpine 3.17.
The latest version of the chromium package on Alpine 3.17 has support for armv7 in addition to amd64 and arm64. Since that package is why we reduced support to just amd64 and arm64 it makes sense to add support for build armv7 images. Due to build dependencies we use the `alpine:3.17` image for the compile-stage instead of a Python Docker image. Additional packages were added to support building the lxml Python package for armv7 since pre-built wheels are not available.
…ersion Update the base Docker images
Move the hard-coded Python package versions to environment values to improve maintainability.
Update the versions of the pip, pipenv, setuptools, and wheel packages defined in the Dockerfile.
Update the full Python version defined in the Pipfile and update all dependencies in the lock file by running `pipenv lock` in the `src/` directory.
…ncies Update Python dependencies
Create and use an unprivileged user in the Docker configuration with our standard configuration.
Make sure that all RUN instructions use `python3` instead of `python`.
Use an unprivileged user in the Docker configuration
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.
👍 👍
In the build-image stage we do not need the development headers and related items for the libxml3 and libxslt packages. We can therefore install the regular packages instead of the `-dev` versions of these packages.
c10c058
to
d453f35
Compare
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.
Approval intensifies!!!
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.
Still 👍 👍
🗣 Description
This pull request updates from Python
3.10.5
to3.10.7
, updates dependencies, and switches from using Debian Bullseye to Alpine Linux 3.16.💭 Motivation and context
This includes the following pull requests:
This fixes the currently failing build process due to no longer available dependency versions in addition to the improvements included in the above PRs.
Note: I have performed this testing for the latest (
0.1.0-rc.1
) pre-release as well.🧪 Testing
Automated testing passes. Running the container locally I saw expected behavior.
✅ Pre-approval checklist
to reflect the changes in this PR.
✅ Pre-merge checklist
✅ Post-merge checklist