FROM ubuntu:22.04
# Non-interactive for automated builds
ENV DEBIAN_FRONTEND=noninteractive
# Install build tools and dependencies used by the ImGui repository (Linux)
RUN apt-get update && \
apt-get install -y --no-install-recommends \
build-essential cmake make \
gcc g++ \
git ca-certificates \
libglfw3-dev libsdl2-dev libfreetype6-dev libvulkan-dev \
gcc-multilib g++-multilib \
&& rm -rf /var/lib/apt/lists/*
# Working directory for the repository
WORKDIR /imgui
# Copy the repository source into the image
COPY . /imgui
# Build the Linux example_null (extra warnings) to verify the build works
RUN mkdir -p build && \
cd examples/example_null && \
WITH_EXTRA_WARNINGS=1 make
# Expose a shell by default so users can run binaries manually
CMD ["/bin/bash"]
# Docker build ignore rules for imgui repository .git .github build CMakeFiles CMakeCache.txt cmake_install.cmake Makefile *.o *.a *.so *.dll *.exe *.log *.tmp *.tar.gz *.zip *.class
Concerns: The built example_null binary is a GUI application; running it in headless CI would fail. Smoke tests should avoid executing GUI binaries and instead verify build artifacts exist., The location of the built binary may vary between ImGui versions or forks; assume /imgui/examples/example_null/example_null but be aware this path could differ in other variants. Smoke [PASS]: test -x /imgui/examples/example_null/example_null Smoke [PASS]: test -f /imgui/imgui.h