Skip to content
Merged
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
6f6677d
Don't install pypi packages to ~/.local
danielhollas Jun 5, 2025
034434b
Exclude '.cache' directory from home.tar
danielhollas Jun 5, 2025
65825bc
Point to origin
danielhollas Jun 5, 2025
a69d7d0
Install vibroscopy with uv
danielhollas Jul 2, 2025
6967356
Unpin spglib
danielhollas Jul 18, 2025
f98b13d
pip install aiida-bader
danielhollas Nov 20, 2025
7161641
Install vibroscopy via pip
danielhollas Nov 21, 2025
0cf153d
pip install vibroscopy
danielhollas Nov 21, 2025
b6e560d
Try this?
danielhollas Nov 21, 2025
88b9bd8
Test python 3.12 and aiida-core=2.8.0 (#1466)
danielhollas Mar 25, 2026
77da491
Merge branch 'main' into image-fix-pip
danielhollas May 19, 2026
ad29f75
Install vibroscopy with uv
danielhollas May 19, 2026
38e90bf
Workaround for euphonic arm build
danielhollas May 19, 2026
bad4715
Install euphonic via conda
danielhollas May 19, 2026
fce6af0
Don't install euphonic from conda
danielhollas May 19, 2026
903b2cc
Bump aiidalab-qe-vibroscopy in the image
danielhollas May 19, 2026
88dca93
Temporarily point to fork for vibroscopy app
danielhollas May 19, 2026
b8c388a
Update muon plugin as well
danielhollas May 19, 2026
7228e57
Bump uv
danielhollas May 20, 2026
769871a
Use home_build uv cache in final build
danielhollas May 20, 2026
ff4358d
Install euphonic separately
danielhollas May 20, 2026
d73987a
Make wget less noisy
danielhollas May 20, 2026
de5b60b
--no-build-isolation for euphonic
danielhollas May 20, 2026
1c9eaab
Add comment, get rid of uv warning
danielhollas May 20, 2026
8ff0a69
Use aiidalab-qe-vibroscopy from PyPI
danielhollas May 20, 2026
aaa0b91
Try uv envs
danielhollas May 20, 2026
a4f15c8
Come on euphonic
danielhollas May 20, 2026
dcb69e9
Revert "Try uv envs"
danielhollas May 20, 2026
d382ac4
Reduce diff
danielhollas May 20, 2026
7c24eda
Fix
danielhollas May 20, 2026
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
50 changes: 23 additions & 27 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
# 1) Global ARGs
###############################################################################
ARG FULL_STACK_VER=2026.1030
ARG UV_VER=0.11.1
ARG UV_VER=0.11.15
ARG QE_VER=7.4
ARG QE_DIR=/opt/conda/envs/quantum-espresso-${QE_VER}
ARG HQ_VER=0.19.0
Expand All @@ -17,13 +17,9 @@ ARG UV_CACHE_DIR=/tmp/uv_cache
ARG QE_APP_SRC=/tmp/quantum-espresso
ARG COMPUTER_LABEL="localhost"

#
# We'll define the possible HQ download URLs (for x86_64 and ARM64).
#
ARG HQ_URL_AMD64="https://github.com/It4innovations/hyperqueue/releases/download/v${HQ_VER}/hq-v${HQ_VER}-linux-x64.tar.gz"
ARG HQ_URL_ARM64="https://github.com/It4innovations/hyperqueue/releases/download/v${HQ_VER}/hq-v${HQ_VER}-linux-arm64-linux.tar.gz"
ARG VIBROSCOPY_PKG="aiidalab-qe-vibroscopy@git+https://github.com/mikibonacci/aiidalab-qe-vibroscopy@v1.2.0"
ARG MUON_PKG="aiidalab-qe-muon@git+https://github.com/mikibonacci/aiidalab-qe-muon@v1.0.0"
ARG MUON_PKG="aiidalab-qe-muon@git+https://github.com/aiidalab/aiidalab-qe-muon@v1.1.1"
ARG AIIDA_HQ_PKG="aiida-hyperqueue~=0.3.0"

###############################################################################
Expand Down Expand Up @@ -87,19 +83,16 @@ ARG TARGETARCH
ARG HQ_URL_AMD64
ARG HQ_URL_ARM64
ARG AIIDA_HQ_PKG
ARG VIBROSCOPY_PKG
ARG MUON_PKG

#
# Download and unpack the correct hq binary for the architecture:
#
RUN set -ex; \
if [ "${TARGETARCH}" = "arm64" ]; then \
echo "Downloading hyperqueue for ARM64..."; \
wget -c -O hq.tar.gz "${HQ_URL_ARM64}"; \
wget --no-verbose -c -O hq.tar.gz "${HQ_URL_ARM64}"; \
else \
echo "Downloading hyperqueue for x86_64..."; \
wget -c -O hq.tar.gz "${HQ_URL_AMD64}"; \
wget --no-verbose -c -O hq.tar.gz "${HQ_URL_AMD64}"; \
fi && \
tar xf hq.tar.gz -C /opt/conda/

Expand All @@ -109,10 +102,14 @@ RUN mkdir -p ${PSEUDO_FOLDER} && \
python -m aiidalab_qe download-pseudos --dest ${PSEUDO_FOLDER}

ENV UV_CONSTRAINT=${PIP_CONSTRAINT}
# Install the aiida-hyperqueue

# NOTE: euphonic must be build separately with --no-build-isolation,
# otherwise it fails to build on arm64 due to missing build-time numpy dependency.
RUN --mount=from=uv,source=/uv,target=/bin/uv \
--mount=from=build_deps,source=${UV_CACHE_DIR},target=${UV_CACHE_DIR},rw \
uv pip install --system --strict --cache-dir=${UV_CACHE_DIR} ${AIIDA_HQ_PKG}
uv pip install --system --strict --cache-dir=${UV_CACHE_DIR} --no-build-isolation euphonic==1.3.2 && \
uv pip install --system --strict --cache-dir=${UV_CACHE_DIR} \
${AIIDA_HQ_PKG} ${MUON_PKG} aiidalab-qe-vibroscopy aiida-bader

COPY ./before-notebook.d/* /usr/local/bin/before-notebook.d/

Expand All @@ -127,9 +124,6 @@ RUN --mount=from=qe_conda_env,source=${QE_DIR},target=${QE_DIR} \
verdi code create core.code.installed --label python --computer=localhost --default-calc-job-plugin pythonjob.pythonjob --filepath-executable=/opt/conda/bin/python -n && \
verdi code create core.code.installed --label bader --computer=localhost --default-calc-job-plugin bader.bader --filepath-executable=${QE_DIR}/bin/bader -n && \
verdi code create core.code.installed --label wannier90 --computer=localhost --default-calc-job-plugin wannier90.wannier90 --filepath-executable=/opt/conda/bin/wannier90.x -n && \
# Additional plugins
pip uninstall -y phonopy && \
pip install aiida-bader ${VIBROSCOPY_PKG} ${MUON_PKG} && \
# run post_install for plugin
python -m aiida_bader post-install && \
python -m aiidalab_qe_vibroscopy setup-phonopy && \
Expand All @@ -138,7 +132,6 @@ RUN --mount=from=qe_conda_env,source=${QE_DIR},target=${QE_DIR} \
aiida-pseudo install sssp -v 1.1 -x PBE && \
aiida-pseudo install sssp -v 1.1 -x PBEsol && \
verdi daemon stop && \
pip install spglib==2.5.0 && \
mamba run -n aiida-core-services pg_ctl stop && \
touch /home/${NB_USER}/.FLAG_HOME_INITIALIZED && \
# NOTE: The work folder is empty but if included clashes with the work folder in a Renku
Expand All @@ -147,7 +140,7 @@ RUN --mount=from=qe_conda_env,source=${QE_DIR},target=${QE_DIR} \
# It is usually safe (and preferable) to let .conda be recreated on the fly each time,
# because .conda typically just holds local environment information, caches, or references
# to available environments.
cd /home/${NB_USER} && tar -cf /opt/conda/home.tar --exclude work --exclude .conda .
cd /home/${NB_USER} && tar -cf /opt/conda/home.tar --exclude .cache --exclude work --exclude .conda .

###############################################################################
# 6) Final stage
Expand All @@ -161,24 +154,27 @@ ARG UV_CACHE_DIR
ARG COMPUTER_LABEL
ARG TARGETARCH
ARG AIIDA_HQ_PKG
ARG VIBROSCOPY_PKG
ARG MUON_PKG

USER ${NB_USER}
WORKDIR /tmp
# Install python dependencies

# Install common dependencies such as pymatgen and pandas via conda,
# to avoid building them when installing via pip
# TODO: Remove this once it is part of the full-stack image.
RUN mamba install aiida-core.atomic_tools -y && \
mamba clean --all -f -y

# Install dependencies in the final image.
# It is important that these are installed in /opt/conda, not ~/.local
# Use uv cache from the previous build step
# # Install the aiida-hyperqueue
ENV UV_CONSTRAINT=${PIP_CONSTRAINT}
RUN --mount=from=uv,source=/uv,target=/bin/uv \
--mount=from=build_deps,source=${UV_CACHE_DIR},target=${UV_CACHE_DIR},rw \
--mount=from=home_build,source=${UV_CACHE_DIR},target=${UV_CACHE_DIR},rw \
--mount=from=build_deps,source=${QE_APP_SRC},target=${QE_APP_SRC},rw \
uv pip install --strict --system --cache-dir=${UV_CACHE_DIR} --no-build-isolation euphonic==1.3.2 && \
uv pip install --strict --system --compile-bytecode --cache-dir=${UV_CACHE_DIR} \
${QE_APP_SRC} ${AIIDA_HQ_PKG}
# Install plugins in the final image
RUN pip install aiida-bader ${VIBROSCOPY_PKG} ${MUON_PKG} && \
mamba install scipy==1.13.1 --y && \
mamba clean --all -f -y
${QE_APP_SRC} ${AIIDA_HQ_PKG} ${MUON_PKG} aiidalab-qe-vibroscopy aiida-bader

# copy hq binary
COPY --from=home_build /opt/conda/hq /usr/local/bin/
Expand Down
Loading