Minimal Docker container bundled with the Mesa 3D Gallium Drivers: LLVMpipe & OpenSWR, enabling OpenGL support inside a Docker container without the need for a GPU.
- Alpine Linux 3.12
- LLVMpipe Driver (Mesa 20.0.6)
- OpenSWR Driver (Mesa 20.0.6)
- OSMesa Interface (Mesa 20.0.6)
- softpipe - Reference Gallium software driver
- swrast - Legacy Mesa software rasterizer
- Xvfb - X Virtual Frame Buffer
Please note there are images available for Alpine versions 3.10, 3.11 as well. Please see all available tags on DockerHub
Image | Description | Architectures | Base Image |
---|---|---|---|
utensils/opengl:latest |
Latest Mesa version | amd64, 386, arm64, arm/v7 | alpine:3.12 |
utensils/opengl:stable |
Stable Mesa version (Personally Tested) | amd64, 386, arm64, arm/v7 | alpine:3.12 |
utensils/opengl:20.0.6 |
Mesa version 20.0.6 | amd64, 386, arm64, arm/v7 | alpine:3.12 |
utensils/opengl:19.0.8 |
Mesa version 19.0.8 | amd64 | alpine:3.10 |
utensils/opengl:18.3.6 |
Mesa version 18.3.6 | amd64 | alpine:3.10 |
utensils/opengl:18.2.8 |
Mesa version 18.2.8 | amd64 | alpine:3.10 |
This image can be built locally using the supplied Makefile
Make default image (stable):
make
Make latest image:
make latest
Make all images:
make all
This image is intended to be used as a base image to extend from. One good example of this is the Envisaged project which allows for quick and easy Gource visualizations from within a Docker container.
Extending from this image.
FROM utensils/opengl:20.0.6
COPY ./MyAppOpenGLApp /AnywhereMyHeartDesires
RUN apk add --update my-deps...
The following environment variables are present to modify rendering options.
Variable | Default Value | Description |
---|---|---|
XVFB_WHD |
1920x1080x24 |
Xvfb demensions and bit depth. |
DISPLAY |
:99 |
X Display number. |
LIBGL_ALWAYS_SOFTWARE |
1 |
Forces Mesa 3D to always use software rendering. |
GALLIUM_DRIVER |
llvmpipe |
Sets OpenGL Driver llvmpipe , swr , softpipe , and swrast |
Variable | Default Value | Description |
---|---|---|
LP_NO_RAST |
false |
LLVMpipe - If set LLVMpipe will no-op rasterization |
LP_DEBUG |
"" |
LLVMpipe - A comma-separated list of debug options is accepted |
LP_PERF |
"" |
LLVMpipe - A comma-separated list of options to selectively no-op various parts of the driver. |
LP_NUM_THREADS |
"" |
LLVMpipe - An integer indicating how many threads to use for rendering. Zero (0 ) turns off threading completely. The default value is the number of CPU cores present. |