utensils
docker-opengl
Dockerfile

Multi-Arch Docker - Mesa 3D OpenGL Software Rendering (Gallium) - LLVMpipe, and OpenSWR Drivers

Last updated Jun 19, 2026
89
Stars
33
Forks
3
Issues
0
Stars/day
Attention Score
28
Language breakdown
Dockerfile 54.6%
Makefile 37.7%
Shell 7.6%
Files click to expand
README

Multi-Arch Docker - Mesa 3D OpenGL Software Rendering (Gallium) - LLVMpipe, and OpenSWR Drivers

CircleCI Docker Automated build Docker Pulls Docker Stars

About

Minimal Docker container bundled with the Mesa 3D Gallium Drivers: [LLVMpipe][mesa-llvm] & [OpenSWR][openswr], enabling OpenGL support inside a Docker container without the need for a GPU.

Features

  • 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

Docker Images

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 |

Building

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

Usage

This image is intended to be used as a base image to extend from. One good example of this is the [Envisaged][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...

Environment Variables

The following environment variables are present to modify rendering options.

High level settings

| Variable | Default Value | Description | | ----------------------- | -------------- | -------------------------------------------------------------- | | XVFB_WHD | 1920x1080x24 | Xvfb demensions and bit depth. | | DISPLAY | :99 | X Display number. | | LIBGLALWAYSSOFTWARE | 1 | Forces Mesa 3D to always use software rendering. | | GALLIUM_DRIVER | llvmpipe | Sets OpenGL Driver llvmpipe, swr, softpipe, and swrast |

Lower level settings / tweaks

| Variable | Default Value | Description | | ---------------- | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | LPNORAST | 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. | | LPNUMTHREADS | "" | 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. |

[openswr]: http://openswr.org/ [mesa-llvm]: https://www.mesa3d.org/llvmpipe.html [Envisaged]: https://github.com/utensils/Envisaged [DockerHub]: https://hub.docker.com/repository/docker/utensils/opengl/tags?page=1

🔗 More in this category

© 2026 GitRepoTrend · utensils/docker-opengl · Updated daily from GitHub