sickcodes / Docker-OSX

Run macOS VM in a Docker! Run near native OSX-KVM in Docker! X11 Forwarding! CI/CD for OS X Security Research! Docker mac Containers.
https://hub.docker.com/r/sickcodes/docker-osx
GNU General Public License v3.0
36.1k stars 1.78k forks source link

gtk initialization failed #419

Open DrNulll opened 2 years ago

DrNulll commented 2 years ago

Linux fedora 5.15.12-200.fc35.x86_64 #1 SMP Wed Dec 29 15:03:38 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux :0 1 NAME="Fedora Linux" VERSION_CODENAME="" PRETTY_NAME="Fedora Linux 35 (Workstation Edition)" CPE_NAME="cpe:/o:fedoraproject:fedora:35" Filesystem Size Used Avail Use% Mounted on /dev/sda3 930G 118G 813G 13% /home QEMU emulator version 6.1.0 (qemu-6.1.0-10.fc35) Copyright (c) 2003-2021 Fabrice Bellard and the QEMU Project developers libvirtd (libvirt) 7.6.0 total used free shared buff/cache available Mem: 7.7Gi 1.7Gi 3.0Gi 318Mi 3.0Gi 5.4Gi Swap: 7.7Gi 0B 7.7Gi 4 8 crw-rw-rw-. 1 root kvm 10, 232 Jan 11 19:12 /dev/kvm total 0 drwxrwxrwt. 2 root root 120 Jan 11 19:08 . drwxrwxrwt. 23 root root 540 Jan 11 19:16 .. srwxr-xr-x. 1 anon anon 0 Jan 11 19:08 X0 srwxr-xr-x. 1 anon anon 0 Jan 11 19:08 X1 srwxr-xr-x. 1 gdm gdm 0 Jan 11 19:08 X1024 srwxr-xr-x. 1 gdm gdm 0 Jan 11 19:08 X1025 root 1042 2.5 1.0 3097260 86964 ? Ssl 19:07 0:13 /usr/bin/dockerd --host=fd:// --exec-opt native.cgroupdriver=systemd --selinux-enabled --log-driver=journald --live-restore --default-ulimit nofile=1024:1024 --init-path /usr/libexec/docker/docker-init --userland-proxy-path /usr/libexec/docker/docker-proxy anon 4081 0.0 0.0 221792 2184 pts/0 S+ 19:16 0:00 grep --color=auto dockerd kvm:x:36:qemu,anon libvirt:x:985:anon docker:x:977:anon

DrNulll commented 2 years ago

docker run --device /dev/kvm \ --privileged \ -p 50922:10022 \ -e XDG_RUNTIME_DIR=/tmp \ -e WAYLAND_DISPLAY=$WAYLAND_DISPLAY \ -e QT_QPA_PLATFORM=wayland \ -e GDK_BACKEND=wayland \ -e CLUTTER_BACKEND=wayland \ -e DISPLAY=:0 \ -v $XDG_RUNTIME_DIR/$WAYLAND_DISPLAY:/tmp/$WAYLAND_DISPLAY \ sickcodes/docker-osx:big-sur

seems to work

Ace-Krypton commented 2 years ago

use xhost +

sickcodes commented 2 years ago

-v $XDG_RUNTIME_DIR/$WAYLAND_DISPLAY:/tmp/$WAYLAND_DISPLAY

Shall we include this for Wayland instructions in the README?

DrNulll commented 2 years ago

use xhost +

Doesn't do anything. I have it working with this disabled.

-v $XDG_RUNTIME_DIR/$WAYLAND_DISPLAY:/tmp/$WAYLAND_DISPLAY

Shall we include this for Wayland instructions in the README?

--privileged is what fixed the issue. But prolly should.

ash-hashtag commented 1 year ago

I have the same problem, I'm on Endeavour OS kde plasma

satmandu commented 1 year ago

This is what worked for me for high sierra in Ubuntu 23.04, using gdm/wayland:

#!/bin/bash
docker run \
    --privileged -i \
    --device /dev/kvm \
    -p 50922:10022 \
    -e XDG_RUNTIME_DIR=/tmp \
    -e WAYLAND_DISPLAY=$WAYLAND_DISPLAY \
    -e QT_QPA_PLATFORM=wayland \
    -e GDK_BACKEND=wayland \
    -e CLUTTER_BACKEND=wayland \
    -v $XDG_RUNTIME_DIR/$WAYLAND_DISPLAY:/tmp/$WAYLAND_DISPLAY \
    -v /tmp/.X11-unix:/tmp/.X11-unix \
    -e "DISPLAY=${DISPLAY:-:0.0}" \
    -e AUDIO_DRIVER=pa,server=unix:/tmp/pulseaudio.socket \
    -v "/run/user/$(id -u)/pulse/native:/tmp/pulseaudio.socket" \
    sickcodes/docker-osx:high-sierra
b3b0p831 commented 8 months ago

docker run --device /dev/kvm --privileged
-p 50922:10022 -e XDG_RUNTIME_DIR=/tmp -e WAYLAND_DISPLAY=$WAYLAND_DISPLAY -e QT_QPA_PLATFORM=wayland -e GDK_BACKEND=wayland -e CLUTTER_BACKEND=wayland -e DISPLAY=:0 -v $XDG_RUNTIME_DIR/$WAYLAND_DISPLAY:/tmp/$WAYLAND_DISPLAY
sickcodes/docker-osx:big-sur

seems to work

Works on Fedora 38.

Cryolitia commented 2 months ago

-e "DISPLAY=${DISPLAY:-:0.0}" \

This is what worked for me for high sierra in Ubuntu 23.04, using gdm/wayland:

#!/bin/bash
docker run \
    --privileged -i \
    --device /dev/kvm \
    -p 50922:10022 \
    -e XDG_RUNTIME_DIR=/tmp \
    -e WAYLAND_DISPLAY=$WAYLAND_DISPLAY \
    -e QT_QPA_PLATFORM=wayland \
    -e GDK_BACKEND=wayland \
    -e CLUTTER_BACKEND=wayland \
    -v $XDG_RUNTIME_DIR/$WAYLAND_DISPLAY:/tmp/$WAYLAND_DISPLAY \
    -v /tmp/.X11-unix:/tmp/.X11-unix \
    -e "DISPLAY=${DISPLAY:-:0.0}" \
    -e AUDIO_DRIVER=pa,server=unix:/tmp/pulseaudio.socket \
    -v "/run/user/$(id -u)/pulse/native:/tmp/pulseaudio.socket" \
    sickcodes/docker-osx:high-sierra

works for me NixOS

ErickRodrCodes commented 1 week ago

This is what worked for me for high sierra in Ubuntu 23.04, using gdm/wayland:

#!/bin/bash
docker run \
    --privileged -i \
    --device /dev/kvm \
    -p 50922:10022 \
    -e XDG_RUNTIME_DIR=/tmp \
    -e WAYLAND_DISPLAY=$WAYLAND_DISPLAY \
    -e QT_QPA_PLATFORM=wayland \
    -e GDK_BACKEND=wayland \
    -e CLUTTER_BACKEND=wayland \
    -v $XDG_RUNTIME_DIR/$WAYLAND_DISPLAY:/tmp/$WAYLAND_DISPLAY \
    -v /tmp/.X11-unix:/tmp/.X11-unix \
    -e "DISPLAY=${DISPLAY:-:0.0}" \
    -e AUDIO_DRIVER=pa,server=unix:/tmp/pulseaudio.socket \.
    -v "/run/user/$(id -u)/pulse/native:/tmp/pulseaudio.socket" \
    sickcodes/docker-osx:high-sierra

works for me on Ubuntu 22.04. tired with the issue of gtk