Skip to content

Instantly share code, notes, and snippets.

@mihaitodor
Created March 9, 2026 16:03
Show Gist options
  • Select an option

  • Save mihaitodor/967e38d20e90dd4e15a4a15c376abaef to your computer and use it in GitHub Desktop.

Select an option

Save mihaitodor/967e38d20e90dd4e15a4a15c376abaef to your computer and use it in GitHub Desktop.
Run ChimeraX headless CLI in a Docker container
FROM ubuntu:24.04 AS builder
# Copied from https://github.com/RBVI/ChimeraX/blob/2148f30d4af45ddcd2b24eef6a794ccf081d4dec/prereqs/linux_buildenv/ubuntu-24.04.def#L12-L80
# Also added `git`, which seems to be required
RUN export PATH=/usr/bin:/usr/sbin:/bin:/sbin && \
export SHELL=/bin/bash && \
export LANG=en_US.UTF-8 && \
export DEBIAN_FRONTEND=noninteractive && \
apt-get -y update && \
apt-get install -y --no-install-recommends \
language-selector-common ffmpeg vim-nox \
build-essential g++ gfortran gfortran-9 \
tcsh cmake bc \
patchelf patch openssh-client rsync ca-certificates \
make autoconf automake libtool pkg-config \
flex bison yasm unzip tar fakeroot curl wget \
python3 python-is-python3 \
imagemagick \
libasound2-dev \
libatk1.0-dev \
libbz2-dev \
libcairo2-dev \
libcups2-dev \
libdbus-1-dev \
libegl1-mesa-dev \
libexpat1-dev \
libffi-dev \
libfftw3-dev \
libfreetype6-dev \
libgdk-pixbuf2.0-dev \
libgl1-mesa-dev \
libglu1-mesa-dev \
libgstreamer1.0-dev \
libgstreamer-plugins-base1.0-dev \
libgtk-3-dev \
libhdf5-dev \
libicu-dev \
libjpeg-dev \
liblzma-dev \
libmysqlclient-dev \
libnss3-dev \
libosmesa6-dev \
libpango1.0-dev \
libpcre3-dev \
libpng-dev \
libpulse-dev \
libsqlite3-dev \
libssl-dev \
libtiff-dev \
libx11-dev \
libxcomposite-dev \
libxcursor-dev \
libxext-dev \
libxft-dev \
libxi-dev \
libxmu-dev \
libxpm-dev \
libxrandr-dev \
libxslt1-dev \
libxss-dev \
libxt-dev \
libxtst-dev \
llvm-dev \
libz-dev \
x11proto-scrnsaver-dev \
xdg-utils \
zlib1g-dev \
git && \
apt-get install -y --no-install-recommends `check-language-support -l en_US` && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
WORKDIR /ChimeraX
COPY . .
RUN make install
FROM ubuntu:24.04
RUN groupadd --system --gid 101 nonroot \
&& useradd --system --gid 101 --uid 101 --create-home nonroot
RUN export DEBIAN_FRONTEND=noninteractive && \
apt-get -y update && \
apt-get install -y \
libglu1 \
libgl1 \
libegl1 \
libglib2.0-dev \
libxkbcommon-x11-0 \
libdbus-1-3
COPY --from=builder --chown=nonroot:nonroot /ChimeraX/ChimeraX.app /ChimeraX/ChimeraX.app
USER nonroot
ENTRYPOINT [ "/ChimeraX/ChimeraX.app/bin/ChimeraX" ]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment