SelfhostedPro/Yacht

[Bug Report] Seemingly broken when Podman is host

QazCetelic opened this issue · 5 comments

Yacht seems to be broken when Podman is the host

I have created several containers and tested if I was able to log in. These are the results.

Podman host Docker host
/var/run/podman/podman.sock No Yes
/var/run/docker.sock No Yes

Here is a script to test it.

echo 'Creating containers'

podman volume create yacht_podman_socket
podman run -v /var/run/podman/podman.sock:/var/run/docker.sock -v yacht_podman_socket:/config -p 8001:8000 --name yacht_podman_socket -d ghcr.io/selfhostedpro/yacht:latest

podman volume create yacht_docker_socket
podman run -v /var/run/docker.sock:/var/run/docker.sock -v yacht_docker_socket:/config -p 8002:8000 --name yacht_docker_socket -d ghcr.io/selfhostedpro/yacht:latest

docker volume create yacht_podman_socket
docker run -v /var/run/podman/podman.sock:/var/run/docker.sock -v yacht_podman_socket:/config -p 8003:8000 --name yacht_podman_socket -d ghcr.io/selfhostedpro/yacht:latest

docker volume create yacht_docker_socket
docker run -v /var/run/docker.sock:/var/run/docker.sock -v yacht_docker_socket:/config -p 8004:8000 --name yacht_docker_socket -d ghcr.io/selfhostedpro/yacht:latest

sleep 3s
echo 'Checking containers'

check_webserver () {
    if curl --output /dev/null --silent --head --fail "localhost:$1"; then
        echo "$2 host, $3 socket works"
    else
        echo "$2 host, $3 socket is broken"
    fi
}

uname -svo
check_webserver "8001" "Podman" "Podman"
check_webserver "8002" "Podman" "Docker"
check_webserver "8003" "Docker" "Podman"
check_webserver "8004" "Docker" "Docker"

echo 'Cleaning containers'

clean_container() {
    $1 stop "yacht_$2_socket" && $1 rm "yacht_$2_socket" && $1 volume rm "yacht_$2_socket"
}

clean_container "docker" "docker"
clean_container "docker" "podman"
clean_container "podman" "docker"
clean_container "podman" "podman"

My results (Debian GNU/Linux 12 (bookworm))

Creating containers
yacht_podman_socket
Error: netavark: No such file or directory (os error 2)
yacht_docker_socket
Error: netavark: No such file or directory (os error 2)
yacht_podman_socket
0b846226c2edec9fd6e5eafd03b60d4d593fc83b94a6349119a4bdc0a877b2bc
yacht_docker_socket
0c42ac539b5f0eb68e2d15c1405f851deda227842c08ba28aa9166ebc4d3ffce
Checking containers
Linux #1 SMP PREEMPT_DYNAMIC Debian 6.1.38-2 (2023-07-27) GNU/Linux
Podman host, Podman socket is broken
Podman host, Docker socket is broken
Docker host, Podman socket works
Docker host, Docker socket works
Cleaning containers
yacht_docker_socket
yacht_docker_socket
yacht_docker_socket
yacht_podman_socket
yacht_podman_socket
yacht_podman_socket
yacht_docker_socket
yacht_docker_socket
yacht_docker_socket
yacht_podman_socket
yacht_podman_socket
yacht_podman_socket

Thanks, I just built a Ubuntu 23 podman host and will test it. If I need to I will spin up a debian based one also. So far the instructions on http://dev.yacht.sh are correct and no issues with my test host. I will run your script and get back to you soon.

any update?

Sorry, life slowed me down on responses. No, with the information supplied I wasn't able to duplicate the issue.

I invite you to join our discord where you can speak to us directly and maybe screen share to troubleshoot more.

Not reproduceable with latest version