Skip to content

Commit 5e3034a

Browse files
authored
Dockerfile: decouple compiler package version and compiler version (#155)
* The newer Intel oneAPI compiler packages contain a legacy Fortran compiler and a modern LLVM Fortran compiler. The compiler package version does not correspond with the legacy Fortran compiler version.
1 parent 8b6f028 commit 5e3034a

File tree

3 files changed

+21
-19
lines changed

3 files changed

+21
-19
lines changed

containers/Dockerfile.base-spack

+16-14
Original file line numberDiff line numberDiff line change
@@ -59,24 +59,26 @@ ARG SPACK_REPO_VERSION=releases/${SPACK_VERSION}
5959
ARG SPACK_PACKAGES_REPO_VERSION=main
6060
ARG SPACK_CONFIG_REPO_VERSION=main
6161
ARG SPACK_ARCH=linux-rocky8-x86_64
62-
ARG COMPILER_PACKAGE=intel-oneapi-compilers
63-
ARG COMPILER_VERSION=2021.2.0
62+
ARG COMPILER_PKG_NAME=intel-oneapi-compilers
63+
ARG COMPILER_PKG_VERSION=2021.2.0
6464
ARG COMPILER_NAME=intel
65+
ARG COMPILER_VERSION=2021.2.0
6566

6667
ENV SPACK_ROOT=/opt/spack
6768
ENV GNUPGHOME=${SPACK_ROOT}/opt/spack/gpg
68-
ENV SPACK_ENV_ARCH=${SPACK_ARCH}
69+
ENV ENV_SPACK_ARCH=${SPACK_ARCH}
6970
ENV SPACK_PACKAGES_REPO_ROOT=/opt/spack-packages
7071
ENV SPACK_CONFIG_REPO_ROOT=/opt/spack-config
7172
ENV SPACK_CONFIG_DIR=${SPACK_CONFIG_REPO_ROOT}/${SPACK_VERSION}/ci
72-
ENV SPACK_ENV_COMPILER_PACKAGE=${COMPILER_PACKAGE}
73-
ENV SPACK_ENV_COMPILER_VERSION=${COMPILER_VERSION}
74-
ENV SPACK_ENV_COMPILER_NAME=${COMPILER_NAME}
73+
ENV ENV_COMPILER_PKG_NAME=${COMPILER_PKG_NAME}
74+
ENV ENV_COMPILER_PKG_VERSION=${COMPILER_PKG_VERSION}
75+
ENV ENV_COMPILER_NAME=${COMPILER_NAME}
76+
ENV ENV_COMPILER_VERSION=${COMPILER_VERSION}
7577

7678
LABEL au.org.access-nri.image.spack-repo-version ${SPACK_REPO_VERSION}
7779
LABEL au.org.access-nri.image.spack-packages-repo-version ${SPACK_PACKAGES_REPO_VERSION}
78-
LABEL au.org.access-nri.image.compiler ${SPACK_ENV_COMPILER_PACKAGE}@${SPACK_ENV_COMPILER_VERSION}
79-
LABEL au.org.access-nri.image.arch ${SPACK_ENV_ARCH}
80+
LABEL au.org.access-nri.image.compiler ${ENV_COMPILER_NAME}@${ENV_COMPILER_VERSION}
81+
LABEL au.org.access-nri.image.arch ${ENV_SPACK_ARCH}
8082

8183
SHELL ["/bin/bash", "-c"]
8284

@@ -113,7 +115,7 @@ SHELL ["docker-shell"]
113115
# i.e. the first time they are needed and can’t be found.
114116

115117
# Install compilers
116-
RUN spack install ${SPACK_ENV_COMPILER_PACKAGE}@${SPACK_ENV_COMPILER_VERSION} arch=${SPACK_ENV_ARCH}
118+
RUN spack install ${ENV_COMPILER_PKG_NAME}@${ENV_COMPILER_PKG_VERSION} arch=${ENV_SPACK_ARCH}
117119

118120

119121
################################################################################
@@ -145,14 +147,14 @@ FROM base-spack as dev
145147
ARG MPI_NAME=openmpi
146148
ARG MPI_VERSION=4.0.2
147149

148-
RUN spack load ${COMPILER_PACKAGE}@${COMPILER_VERSION} \
150+
RUN spack load ${COMPILER_PKG_NAME}@${COMPILER_PKG_VERSION} \
149151
&& spack compiler find
150152

151153
RUN spack install \
152-
cmake%${COMPILER_NAME}@${COMPILER_VERSION} arch=${SPACK_ENV_ARCH} \
153-
gmake%${COMPILER_NAME}@${COMPILER_VERSION} arch=${SPACK_ENV_ARCH} \
154-
${MPI_NAME}@${MPI_VERSION}%${COMPILER_NAME}@${COMPILER_VERSION} \
155-
arch=${SPACK_ENV_ARCH}
154+
cmake%${ENV_COMPILER_NAME}@${ENV_COMPILER_VERSION} arch=${ENV_SPACK_ARCH} \
155+
gmake%${ENV_COMPILER_NAME}@${ENV_COMPILER_VERSION} arch=${ENV_SPACK_ARCH} \
156+
${MPI_NAME}@${MPI_VERSION}%${ENV_COMPILER_NAME}@${ENV_COMPILER_VERSION} \
157+
arch=${ENV_SPACK_ARCH}
156158

157159
ENTRYPOINT ["/bin/bash", "/opt/spack/share/spack/docker/entrypoint.bash"]
158160
CMD ["interactive-shell"]

containers/Dockerfile.dependency

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ LABEL au.org.access-nri.ci.packages ${PACKAGE_NAMES}
99
LABEL au.org.access-nri.ci.base-spack-image ${BASE_IMAGE}
1010
LABEL au.org.access-nri.ci.spack-repo-version ${SPACK_REPO_VERSION}
1111
LABEL au.org.access-nri.ci.spack-packages-repo-version ${SPACK_PACKAGES_REPO_VERSION}
12-
LABEL au.org.access-nri.ci.compiler ${SPACK_ENV_COMPILER_PACKAGE}@${SPACK_ENV_COMPILER_VERSION}
12+
LABEL au.org.access-nri.ci.compiler ${ENV_COMPILER_NAME}@${ENV_COMPILER_VERSION}
1313

1414
# Use Spack shell environment for subsequent RUN steps
1515
SHELL ["docker-shell"]

containers/setup-spack-envs.sh

+4-4
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ PACKAGES="${1}"
77
for PACKAGE in ${PACKAGES}; do
88
spack env create ${PACKAGE}
99
spack env activate ${PACKAGE}
10-
spack -d install -j 4 --add --fail-fast ${SPACK_ENV_COMPILER_PACKAGE}@${SPACK_ENV_COMPILER_VERSION} arch=${SPACK_ENV_ARCH}
11-
spack load ${SPACK_ENV_COMPILER_PACKAGE}@${SPACK_ENV_COMPILER_VERSION} arch=${SPACK_ENV_ARCH}
10+
spack -d install -j 4 --add --fail-fast ${ENV_COMPILER_PKG_NAME}@${ENV_COMPILER_PKG_VERSION} arch=${ENV_SPACK_ARCH}
11+
spack load ${ENV_COMPILER_PKG_NAME}@${ENV_COMPILER_PKG_VERSION} arch=${ENV_SPACK_ARCH}
1212
spack compiler find --scope env:${PACKAGE}
13-
spack -d install -j 4 --add --only dependencies --fail-fast ${PACKAGE}%${SPACK_ENV_COMPILER_NAME}@${SPACK_ENV_COMPILER_VERSION} arch=${SPACK_ENV_ARCH}
13+
spack -d install -j 4 --add --only dependencies --fail-fast ${PACKAGE}%${ENV_COMPILER_NAME}@${ENV_COMPILER_VERSION} arch=${ENV_SPACK_ARCH}
1414
spack env deactivate
15-
done
15+
done

0 commit comments

Comments
 (0)