-
Notifications
You must be signed in to change notification settings - Fork 1.4k
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
Containers don't work with Podman instead of Docker #201
Comments
Thanks for the report! Yeah #192 should solve this. We're kinda busy now, hopefully I can take a look at it and make more progress soon. |
Actually I got confused and mixed something up myself... the problem here is likely NOT the use of root inside the container, and #192 may not help. This is only about the I'll try this out (after I'm done with an initial basic set-up using docker instead podman). |
Oh, nice! Let us know how that goes! If you feel like it, you could share your podman-compose and add it here: https://github.com/jitsi/docker-jitsi-meet/tree/dev/examples |
This helps with, but doesn't entirely fix just yet, running this project on Fedora using `podman up -d` instead of Docker. This should not break regular `docker-compose` on systems without SELinux.
That's the beauty of it - there is no podman-compose YAML, With PR #204 and after
Need to further investigate that some other time. |
Nice! I think the problem might be that we use a user defined network to route traffic across containers using a FQDN that doesn’t exist: xmpp.meet.jitsi |
The same errors are occurring in this issue: #254 |
@sapkra Why do you think those are related? |
Just because the error is the same. Maybe it has the same reason...maybe not. nginx: [emerg] invalid number of arguments in "proxy_pass" directive in /config/nginx/meet.conf:31 |
While the error is the same (the templating failed) it could have been triggered for unrelated reasons I think. |
I had the same issue and I resolve it by adding env_file. See my updated docker-compose.yml You also may need to change the owner of jitsi-meet-cfg/prosody/data to deal with the none root prosody daemon: podman unshare chown 101:102 jitsi-meet-cfg/prosody/data |
@Tinigriffy I just tried that, now I have the |
Did you clean the configuration folder before running this version? Do you lauch the yaml in the directory where is the .env? |
Ah I see what I was missing the extra hosts thing, I'll try this thanks for the reply :) |
Currently I am creating files to create podman images in order to later on run the containers with the systemd. But when I run a prosody container, I get the following errors |
Just a heads up I created a full guide for this as I was tired of not finding good information: |
podman pod create --name jitsi
--add-host=meet.jitsi:127.0.0.1
--add-host=jvb.meet.jitsi:127.0.0.1
--add-host=jicofo.meet.jitsi:127.0.0.1
--add-host=jigasi.meet.jitsi:127.0.0.1
--add-host=jvb.meet.jitsi:127.0.0.1
--add-host=xmpp.meet.jitsi:127.0.0.1
--add-host=auth.meet.jitsi:127.0.0.1
--add-host=auth.meet.jitsi:127.0.0.1
--add-host=muc.meet.jitsi:127.0.0.1
--add-host=internal-muc.meet.jitsi:127.0.0.1
--add-host=guest.meet.jitsi:127.0.0.1
--add-host=recorder.meet.jitsi:127.0.0.1
--add-host=etherpad.meet.jitsi:127.0.0.1 The easiest way to get up and running might be to create a pod. Pods have a single IP address. Communicating between containers in a pod is as easy as using localhost—no need to expose ports or configure dnsmasq DNS resolution. I've added host aliases above so that names used within jitsi resolve to localhost. You'll probably want to either Then a podman generate systemd --name --files jitsi will generate unit files for everything in the pod. I generally prefer to create my infrastructure in ansible, rather than via docker-compose, so I just did that. Maybe there is a way to do this with podman-compose too. I would very much prefer it if these containers could be made to start without root. There is no reason why Last time I checked, inter-container DNS resolution is still not enabled by default on podman's default internal network. This causes problems between containers that connect to each other by name. You can |
I followed the Quick start of the Self-Hosting Guide - Docker up to point 6 and managed to start a jitsi instance passing extra arguments to
<tl;dr> For what it's worth I went down the
If anyone likes to reproduce, this my approach using ansible: grrvs/ansible_podman-compose_jitsi |
For anybody looking to do this now with rootless podman, there are a bunch of differences compared to the older answers with newer versions of podman and podman-compose. The most notable are:
The way I did it was using the following docker compose:
And the relevant parts of the
I had to dig through things a bit to figure some stuff out, but reasoning is as follows:
My setup is with a reverse proxy at the edge of my network handling SSL termination with it reverse proxying to the |
Just to add another recent data point: hosting Jitsi meet with rootless podman and podman-compose worked for me out of the box. Some information about my system/setup:
|
On Debian Bookworm (stable) with podman 4.3.1, podman-compose 1.0.3 and apache 2.4.57 reverse proxy, only the config by @alexmaras + |
Interesting. Is this reproducible? Is it just the first connection after the bridge is restarted, or the first connection any time you open a conference in firefox? The WebSocket to JVB uses TLS/443, not UDP/10000 (not sure exactly how it's routed with the default docker/podman setup), but I don't see why it would fail initially and then succeed. |
I see the mentioned bridge error message during every conference, at the moment the other person joins. According to the Network tab of the inspector, the first request to /colibri-ws/jvb/ gets ns_error_websocket_connection_refused (on the TLS port indeed, I now see it matches a 502 status code in Apache logs), then another request gets 101 Switching Protocols and continues. Here are my virtual host lines for the reverse proxy:
Replacing the |
Closing as per #201 (comment) |
I personally prefer using https://podman.io instead of Docker (because containers dont' run as root, on the host; although you can still be root inside the container..), and when I tried that with this project (FYI they have a
podman-compose
which, in my experience, is reasonably compatible withdocker-compose
) but I've noticed that the images of this project don't yet work with Podman instead of Docker. The web container for example failed with the error below (I hadn't even checked the others.)The short-term workaround is, of course, to just use Docker instead of Podman for now, but I thought I'd at least just let you know about this by filing this issue here.
Glancing over this project, I've noticed open PRs #192 and #126, it's possible they help with this.
@saghul more of an FYI
The text was updated successfully, but these errors were encountered: