Solved!
more expanded details can be seen here:
Thank you, all!
hey all!
i need some guidance. can you help point me in the right direction?
there a docker image that is basically fine, except i just want to add a group to it so that group will exist in the container.
how do i do this? is there a way to do this that will just pull the original image as is, so it will update when the original image updates, and then just add the group i need?
thanks in advance!
Make your own dockerfile, and the first line will be FROM <upstream>. Then make your changes.
awesome, thanks!
i will give this a go!
edit this worked perfectly, thank you!
The answers about using Dockerfiles are absolutely correct, but if you’re looking for a quick and simple solution that will work locally, you can always just use the “commit” docker command. This basically saves the current state of a container as a new image. You can then run new containers from that image as needed.
See https://stackoverflow.com/questions/44480740/how-to-save-a-docker-container-state
This is totally fine for testing, but there are almost always better solutions.
Either create a Dockerfile that is based on the original one as the other comment suggests, or find the git repo of the original Image, fork it and add your changes to the Dockerfile.
If you want to include changes from the original one you’ll need to set up some kind of regular job that checks for a new image or changes in the git repo and then applies your changes.
If you need it to be available at Dockerhub, ghcr or the like, you need some additional setup, usually a CI that pushes it.
thanks!
these aren’t changes i can merge up, and i want to ensure it’s always, ultimately, just pulling the original image with any new changes they make, and then making the changes i need, so i think the other solution is probably the most applicable for this problem.
What exactly are you doing? You may not need to do this. I know you can use the group number instead of the name if it doesn’t exist in some cases.
for the expanded discussion, you can check here:
Right, you just need to make sure that the user inside the container has permission to the device. They cover this in the front page of the repo: https://github.com/TheoLeCalvar/peertube-plugin-hardware-transcode-vaapi?tab=readme-ov-file#running-the-docker-image
And you can map internal users to external users. This isn’t as common with Docker since things tend to run as root, so maybe look up Podman docs where it’s more common since it’s whole schtick is running with minimal permissions.
this would be useful but i was never able to figure out how. :/
Basically this:
docker run -it --user $UID:$GID
Pass it a user and group that have the appropriate access, and no more. You can also set this in Docker compose or whatever other abstraction you’re using.
so, in this case, the internal user is peertube with UID 999.
would i then use that UID, and the GID of the passed render device?
Passing that in basically overrides the [USER field in the Dockerfile](docker run -it --user $UID:$GID). Make sure that user/group combo has access to the render device.
right, so what confused me is that the basic setup works for owncast, but the same setup not for peertube.