运行 Docker 容器 - X11 无法打开显示:0

问题描述 投票:0回答:1

我有一个使用 Fyne 框架用 Golang 编写的项目。在尝试对这些类型的应用程序进行 Docker 化时,我意识到与 X11 相关的问题。这是我的 Dockerfile:

FROM golang:1.20

WORKDIR /app

COPY . .

RUN go mod download
RUN apt-get update && apt-get install -y libgl1-mesa-dev xorg-dev x11-apps dbus-x11 xvfb make
RUN make

# my Golang app takes in a single command line argument hence the ENTRYPOINT.
# specifically, the command line argument is an address the application will use.
ENTRYPOINT ["./cmd/server/server"]

这是我的运行方式:

docker run -e DISPLAY=$DISPLAY -p 8080:3000 --net=host red "localhost:3000"

但是,这似乎会导致错误:

PlatformError: X11: Failed to open display :0
panic: NotInitialized: The GLFW library is not initialized

我也知道可用的

fyne-cross
项目。我尝试使用它,但也遇到了更多问题。不过我想自己尝试 Dockerize 这个项目。

我尝试过做

xhost + local:docker
(我知道,不安全),但是弹出了同样的错误。 我也尝试过:
docker run -it   --rm   -e DISPLAY=$DISPLAY   -v /tmp/.X11-unix:/tmp/.X11-unix red "localhost:3000"
我也尝试过使用和不使用
--net=host
。我在另一篇文章中看到了这个解决方案,但它似乎没有做任何事情。作为上下文,我使用的是 Ubuntu。

docker go dockerfile x11 fyne
1个回答
0
投票

据我所知,X11 转发不会公开运行 Fyne 应用程序所需的 OpenGL 驱动程序。这类似于无法从无头 Linux 启动 Fyne 应用程序的未决问题。

© www.soinside.com 2019 - 2024. All rights reserved.