-
-
Notifications
You must be signed in to change notification settings - Fork 2.5k
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
Build static FFmpeg and copy binary to Node base #2468
Conversation
PR Reviewer Guide 🔍Here are some key observations to aid the review process:
|
PR Code Suggestions ✨Explore these optional code suggestions:
|
I saw that Rclone would be similar to images in the KEDA core project. Sometimes we can see Go CVE that need to upgrade the Go version and rebuild the app on top of that. If the release cycle is not frequent, I think we can patch it ourselves, something like the KEDA images we recently did. |
e972690
to
7d9889b
Compare
The initial version of Docker Selenium, even before it was part of the Selenium org, had FFMPEG in it. It actually had all browsers in a single image. Which made the image quite heavy but made the usage very simple. Along time we changed because many users manifested themselves, they did not need images with everything included but rather the option to choose if they needed a given part. That is why we have tried to build images that focus on a single concern. Is deployment simplification the only motivation to do this? |
Ok, then I will optimize a video container to record multiple Nodes using another approach. |
CI Failure Feedback 🧐(Checks updated until commit 4d8047f)
✨ CI feedback usage guide:The CI feedback tool (
In addition to being automatically triggered, the tool can also be invoked manually by commenting on a PR:
where Configuration options
See more information about the |
Based on my experience, side car pattern is not a bad thing. It is very common to spot now a days. I have seen wide range from envoy-opa side cars, Dapr , vault side cars to service mesh . Good for separation of concern. |
22a50fb
to
2423b66
Compare
d2255b8
to
73ed298
Compare
Signed-off-by: Viet Nguyen Duc <[email protected]>
73ed298
to
4d8047f
Compare
In part of this change, I am adding capability to record/update video into Node itself with persisting the size of images. The result as below (note that the size is the sum of both amd64 and arm64)
|
User description
Thanks for contributing to the Docker-Selenium project!
A PR well described will help maintainers to quickly review and merge it
Before submitting your PR, please check our contributing guidelines, applied for this repository.
Avoid large PRs, help reviewers by making them as simple and short as possible.
Description
This pull request introduces several updates to the Dockerfiles and Makefile to improve build processes, add new features, and enhance the flexibility of the build configurations. The most important changes include the addition of support for building FFmpeg from source, modifications to the Makefile to handle new build arguments, and updates to various Dockerfiles to accommodate new environment variables and build configurations.
Dockerfile Enhancements:
.ffmpeg/Dockerfile
to build FFmpeg from source, including dependencies and installation steps forx264
andrclone
.Base/Dockerfile
to include new environment variables and additional packages such asxz-utils
. [1] [2]NodeBase/Dockerfile
to add new environment variables and update package installation commands. [1] [2]Makefile Updates:
Makefile
for building and tagging FFmpeg images, and updated existing targets to accommodate these changes. [1] [2] [3] [4]node_base
target to include the newvideo
target as a dependency.Browser Node Dockerfile Changes:
NodeChrome
,NodeChromium
,NodeEdge
,NodeFirefox
) to use a newBASE
argument for more flexible base image selection. [1] [2] [3] [4] [5]NodeFirefox/Dockerfile
to include a script for installing Firefox via APT and handling different Firefox versions.Motivation and Context
Types of changes
Checklist
PR Type
enhancement, tests
Description
recorder-base
Docker image that includes FFmpeg and Rclone for video recording and uploading.recorder_base
target and updated dependencies.recorder-base
as its base image.Changes walkthrough 📝
10 files
upload.sh
Simplify rclone configuration handling in upload script
RecorderBase/upload.sh
UPLOAD_CONFIG_DIRECTORY
andUPLOAD_CONFIG_FILE_NAME
withRCLONE_CONFIG
.RCLONE_CONFIG
.validate_endpoint.sh
Add endpoint validation script for HTTP checks
RecorderBase/validate_endpoint.sh
video.sh
Implement video recording and management script
RecorderBase/video.sh
video_graphQLQuery.sh
Add GraphQL query script for session details
RecorderBase/video_graphQLQuery.sh
video_gridUrl.sh
Add script to determine grid URL for video recording
RecorderBase/video_gridUrl.sh
video_ready.py
Add video readiness check script with HTTP server
RecorderBase/video_ready.py
Dockerfile
Update base Dockerfile with video folder and dependencies
Base/Dockerfile
VIDEO_FOLDER
environment variable.python3-psutil
in the installation.Makefile
Add recorder base target and update video build
Makefile
recorder_base
target.recorder_base
.Dockerfile
Update NodeBase Dockerfile to use recorder base
NodeBase/Dockerfile
recorder-base
.Dockerfile
Add Dockerfile for recorder base with FFmpeg and Rclone
RecorderBase/Dockerfile
recorder-base
with FFmpeg and Rclone.1 files
test.py
Update volume mount path in test configuration
tests/charts/templates/test.py
4 files
deploy.yml
Extend build timeout in deploy workflow
.github/workflows/deploy.yml
docker-test.yml
Adjust Docker test workflow timeout and steps
.github/workflows/docker-test.yml
helm-chart-test.yml
Extend build timeout in Helm chart test workflow
.github/workflows/helm-chart-test.yml
nightly.yml
Extend build timeout in nightly workflow
.github/workflows/nightly.yml