-
Notifications
You must be signed in to change notification settings - Fork 134
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
Dockerized Deployment V2 #403
base: master
Are you sure you want to change the base?
Conversation
|
Ok, adjusted it to use
|
Not sure if I don't understand docker, but why don't you install pikaraoke via pip instead of pulling the source? Then to run: As for iwconfig, I don't know the exact reasoning behind it. Looks to have something to do with Wifi ap mode detection in raspberry pi devices only. Best to leave it in. If your docker image doesn't have iwconfig, can't it simply be installed? |
So if we eventually end up publishing the image to Docker Hub, you'll want to be publishing the specific version/code you're releasing on Github. If you look at something like MariaDB you can see all the version-specific tags like 11.1.6 and so on. The way they do this is they'll have a CI pipeline that builds the source, packages it as an image, and then publishes it to Docker Hub all as part of the same pipeline. If you start pulling down from some remote package manager (like
It does have it, but it looks like in later versions of Debian linux |
Got it that makes sense in regard to the versioning. One could make the case that you could deploy to docker only after the version is released to pip, then have the docker config pull the proper version via Regarding |
I've fixed the Video playing is not functioning. I thought at first it was because the It looks like something is assembling weird URLs ( Omitting the |
-u / -url overrides the webserver url (splash screen and endpoints). There --ffmpeg-url parameter to override the stream url. Normally these are auto-detected, however in a containerized installation, as you noticed the IP address is invalid. You'd need to ensure that both of these are a set to valid LAN IP address in order for other clients to connect. And that the port forwards correctly. There was some discussion about this here. I think it involved some proxying of the two urls into a single endpoint. maybe you can dig up the solution. |
Ok! Getting somewhere. I can now access and display the On my local web browser the video and sound plays perfectly, on my smart TV the interface displays properly and the sound plays for each video, but the video is black. I'm assuming this means the network is ok (otherwise we would get no sound) but probably some issue with the codec that is being streamed over to the browser? I'm going to try tinkering with some settings to see if I can make it use a more basic codec format that may be supported by more embedded browsers. Edit: adding |
Hmm, yeah embedded browsers might be a whole other thing. You should
probably scope this to being able to get the docker container going.
…On Tue, Oct 8, 2024 at 12:47 PM Tom ***@***.***> wrote:
Ok! Getting somewhere.
I can now access and display the /splash screen locally and on my smart
TV's web browser over the network. My phone can successfully open the
remote control app as well.
On my local web browser the video and sound plays perfectly, on my smart
TV the interface displays properly and the sound plays for each video, but
the video is black. I'm assuming this means the network is ok (otherwise we
would get no sound) but probably some issue with the codec that is being
streamed over to the browser?
I'm going to try tinkering with some settings to see if I can make it use
a more basic codec format that may be supported by more embedded browsers.
—
Reply to this email directly, view it on GitHub
<#403 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AA7KXNXCDLDB4MJUFINB5JDZ2QZGFAVCNFSM6AAAAABPNIRVTGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIMBQGY4TCNZYG4>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
Yep, that makes sense. Would you like to be the owner of the Docker Hub repo? I feel like that makes sense given you own the Github repo too. In which case could you do the setup steps here when you have a moment? Once we have the repo we can add the Github Actions definition to build and publish the image on release. |
Yup, I can own that. In the meantime can you write up some basic instructions on how I can test this myself from your branch? Not too familiar with docker, but I do have it installed. |
Basic instructions to spin it all up locally:
Once the remote repo is up and running, only steps 3 and 4 will be required (and you won't need the repo cloned locally of course). Docker compose will automatically trigger an image |
I had a look. Couldn't get it to work initially, but this command did it (add a .) : I'm now able to run a headless server on localhost in docker. That seems to work fine. However, is there a way to automatically pass the host LAN IP to the entrypoint command in the event of the absence of the URL? Ideally that would all be handled automatically and not be a manual configuration. Running headless server and client on localhost is not a common scenario. |
Side point: I'm moving house over the next week so likely won't have time to make progress on this myself in that time. Will pick it up again when things calm down. |
Thanks for the update, we're definitely close here. I also saw this entry on a promising |
FWIW, I have a WIP branch where I'm trying to have pikaraoke run on a single port 5555, including ffmpeg streams. That would solve these issues. I recall I got mostly there, but forget where I left off. Will revisit when I have the time. |
Tbh I'm not sure this is really a problem. Docker is perfectly happy to expose as many ports as you like. Apologies for not following up on this. I'm still in the chaos of setting up my new apartment so don't have any free time to play around with this stuff. |
Hey @vicwomg!
So I'm just taking a stab at this. I'm no expert in Python so I'm running into a few problems but I think the image is building mostly correctly. I made a few changes from the other PR:
python:3.12-slim-bookworm
) as most of your setup scripts and instructions assume you're on Debiangit
. This is because eventually we should set up a Docker publish step as part of the Github release. Pulling the code from the local repo ensures that the published version matches and doesn't accidentally pull in code from a different release.entrypoint.sh
script from the other PR, but I changed it to callpython3 /pikaraoke/pikaraoke/app.py
directly rather than using thepikaraoke.sh
script.This is not currently working, as the app startup fails with:
Unfortunately this is where I run into the problem of not really knowing Python that well!