Skip to content
Merged
Show file tree
Hide file tree
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
3 changes: 3 additions & 0 deletions dev/.env.docker-compose
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,6 @@ DJANGO_PHOLD_OUTPUT_DIR=/tmp/phold_output

# Number of MPI processes for PHOLD simulations (set to 1 for no MPI)
DJANGO_PHOLD_MPI_PROCESSES=4

# Directory containing example ping pong config and CODES binary
CODE_EXAMPLE_DIR=/opt/codes
20 changes: 17 additions & 3 deletions dev/django.Dockerfile
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
# Pin to a specific ROSS commit for reproducible builds.
# Pin to a specific ROSS and CODES commits for reproducible builds.
ARG ROSS_GIT_REF=dc3a6a056cfc7a5e68f7141f88d8833407599ef8
ARG CODES_GIT_REF=a5958cfaee6dcc73a98d084005e3412da773fb35

FROM ubuntu:24.04 AS ross-builder
ARG ROSS_GIT_REF
ARG CODES_GIT_REF

RUN apt-get update && apt-get install -y --no-install-recommends \
ca-certificates git \
Expand Down Expand Up @@ -39,7 +41,19 @@ RUN cmake -S /ross -B /ross/build \
-DCMAKE_BUILD_TYPE=Release \
-DROSS_BUILD_MODELS=ON \
-DROSS_BUILD_TESTING=OFF \
&& cmake --build /ross/build --parallel
&& cmake --build /ross/build --parallel \
&& cmake --install /ross/build --prefix /ross/install

RUN git clone https://github.com/codes-org/codes.git opt/codes \
&& cd /opt/codes \
&& git checkout "${CODES_GIT_REF}" \
&& git submodule update --init --recursive

RUN cmake -S /opt/codes -B /opt/codes/build \
-DROSS_DIR=/ross/install/lib \
-DROSS_PKG_CONFIG_PATH=/ross/install/lib/pkgconfig \
&& cmake --build opt/codes/build \
&& cmake --install opt/codes/build/

FROM mcr.microsoft.com/devcontainers/base:ubuntu-24.04

Expand All @@ -60,7 +74,7 @@ ENV PATH=/opt/mpich/bin:$PATH \
# PHOLD binary built in the ross-builder stage above. Baked into the image instead
# of relying on a host `ross` checkout bind-mounted at runtime.
COPY --from=ross-builder --chown=vscode:vscode /ross/build/models/phold/phold /opt/ross/phold

COPY --from=ross-builder --chown=vscode:vscode /opt/codes /opt/codes
# Ensure Python output appears immediately in container logs.
ENV PYTHONUNBUFFERED=1

Expand Down