Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 9 additions & 5 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# The parent image is the base image that the Dockerfile builds upon.
# The RMG installation instructions suggest Anaconda for installation by source, however, we use micromamba for the Docker image due to its smaller size and less overhead.
# Installation of ARC will also be done in this stage.
FROM --platform=linux/amd64 mambaorg/micromamba:2.2-ubuntu24.04 AS builder

Check warning on line 5 in Dockerfile

View workflow job for this annotation

GitHub Actions / build

FROM --platform flag should not use a constant value

FromPlatformFlagConstDisallowed: FROM --platform flag should not use constant value "linux/amd64" More info: https://docs.docker.com/go/dockerfile/rule/from-platform-flag-const-disallowed/

# Set ARGS
ARG RMG_PY_BRANCH=main
Expand Down Expand Up @@ -34,11 +34,15 @@
# which then dies with NoChannelsConfiguredError (non-fatally) and silently drops that pin.
RUN printf 'channels:\n - conda-forge\n' > /home/mambauser/.condarc

# Set JuliaUp PATH and install Julia 1.10 as req. by RMG (mirrors RMG-Py's own Dockerfile)
# Set JuliaUp PATH and install Julia as req. by RMG (mirrors RMG-Py's own Dockerfile).
# Pinned to a patch version, not the 1.10 channel: `from juliacall import Main` segfaults under
# Julia 1.10.12 (released 17 Aug 2026), and the channel floats to the newest patch, so every build
# from 20 Aug on died in install_rms.sh. RMG-Py pinned the same version for the same reason in
# 62eb728c0 ("Pin Julia and openbabel to unbreak CI").
ENV PATH="/home/mambauser/.juliaup/bin:$PATH"
RUN wget -qO- https://install.julialang.org | sh -s -- --yes --default-channel 1.10 && \
juliaup add 1.10 && \
juliaup default 1.10 && \
RUN wget -qO- https://install.julialang.org | sh -s -- --yes --default-channel 1.10.11 && \
juliaup add 1.10.11 && \
juliaup default 1.10.11 && \
juliaup list && \
rm -rf /home/mambauser/.juliaup/downloads /home/mambauser/.juliaup/tmp

Expand Down Expand Up @@ -109,7 +113,7 @@
# Stage 2: Final image
# The final image is based on the same micromamba image, but we copy over the installed RMG and ARC from the builder stage.
# This keeps the final image size smaller and avoids unnecessary layers.
FROM --platform=linux/amd64 mambaorg/micromamba:2.2-ubuntu24.04

Check warning on line 116 in Dockerfile

View workflow job for this annotation

GitHub Actions / build

FROM --platform flag should not use a constant value

FromPlatformFlagConstDisallowed: FROM --platform flag should not use constant value "linux/amd64" More info: https://docs.docker.com/go/dockerfile/rule/from-platform-flag-const-disallowed/

# --- OCI image metadata -----------------------------------------------------
# ARGs do not cross stages, so ARC_BRANCH is re-declared here.
Expand Down Expand Up @@ -153,7 +157,7 @@
# any --entrypoint override) lands on root with HOME=/root rather than going through
# entrywrapper.sh's `runuser -u mambauser`. juliaup then finds no config, falls back to the
# `release` channel, and downloads a newer Julia over the network - silently bypassing the pinned
# 1.10 and every pkgimage baked above, or hard-failing when the host is offline. Pinning the depot
# 1.10.11 and every pkgimage baked above, or hard-failing when the host is offline. Pinning the depot
# explicitly makes resolution HOME-independent. Note this is JULIAUP_DEPOT_PATH, not
# JULIA_DEPOT_PATH; juliaup does not read the latter for channel lookup.
ENV JULIAUP_DEPOT_PATH=/home/mambauser/.julia
Expand Down
Loading