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