GLFWを使用して空のウィンドウを開くGoで書かれた簡単なプログラムがあります。テストを自動的に実行したいので、GLFWをdockerで実行しようとしました。これまでxvfbを正常に実行しました。
GLX extension not found
私の問題は、電話でエラーが発生することですglfwInit
。また、実行するとglxinfo
このエラーが発生しますcouldn't find RGB GLX visual or fbconfig
。私がオンラインで見つけることができるのは、GLFWがGPUを見つけることができないからです(GPUがないからです)。
それでもライブラリをインストールする必要がありますか、それとも別のものを設定できますか?(例:ヘッドレスモードでGLFWを実行)このエラーを防ぐには?
これは私のDockerfileの短縮バージョンです(Go固有のアイテムは削除されました)。
FROM alpine:latest
RUN apk --no-cache add ca-certificates wget
RUN wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub
RUN wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.28-r0/glibc-2.28-r0.apk
RUN apk add glibc-2.28-r0.apk
RUN apk update
RUN apk add gcc
RUN apk add mesa-dev
RUN apk add libx11-dev
RUN apk add libc-dev
RUN apk add libx11-dev
RUN apk add libxcursor-dev
RUN apk add libxi-dev
RUN apk add libxinerama-dev
RUN apk add libxrandr-dev
RUN apk add xorg-server
RUN apk add xvfb
RUN apk add coreutils
RUN apk add mesa
RUN apk add mesa-gl
RUN apk add mesa-demos
RUN apk add xvfb-run --update-cache --repository http://dl-3.alpinelinux.org/alpine/edge/main/ --allow-untrusted
RUN apk add mesa-osmesa
#if you are unfamiliar with docker, this is the command that gets run when starting the container.
ENTRYPOINT xvfb-run -e /dev/stderr --server-args=':99 -screen 0 640x480x8 +extension GLX +render -noreset -ac' glxinfo | cat
出力:
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning: Unsupported high keycode 372 for name <I372> ignored
> X11 cannot support keycodes above 255.
> This warning only shows for the first high keycode.
Errors from xkbcomp are not fatal to the X server
name of display: :99
Error: couldn't find RGB GLX visual or fbconfig
XKEYBOARD警告は重要ではなく、無視してもよいと思います。
ベストアンサー1
mesa-dri-gallium
GLX拡張機能を有効にするパッケージがありません。
完成したDockerfileは次のようになります。
FROM alpine:edge
RUN apk update
# Dependencies for GLFW (not required for this example)
RUN apk add \
build-base \
libx11-dev \
libxcursor-dev \
libxrandr-dev \
libxinerama-dev \
libxi-dev \
mesa-dev
# Required to run xvfb-run
RUN apk add mesa-dri-gallium xvfb-run
# virtualgl includes glxinfo
RUN apk add virtualgl --update-cache --repository http://dl-3.alpinelinux.org/alpine/edge/testing/ --allow-untrusted
ENTRYPOINT xvfb-run -e /dev/stderr glxinfo | cat