我有一个使用Fyne框架用Golang编写的项目.在try 将这些类型的应用程序Docker化时,我意识到了与X11相关的问题.这是我的文档文件:
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
项目.我试图使用它,但也遇到了更多的问题.然而,我想亲自try 一下Dockerize这个项目.
我试着做xhost + local:docker
(我知道,不安全),但同样的错误弹出.
我也try 过:
docker run -it --rm -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix red "localhost:3000"
我也试过用--net=host
和不用--net=host
.我在另一篇文章中看到了这个解决方案,但它似乎没有起到任何作用.关于背景,我在Ubuntu上.