DockerでGLFWを実行する

DockerでGLFWを実行する

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-galliumGLX拡張機能を有効にするパッケージがありません。

完成した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

おすすめ記事