Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
M
MUST-containers
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
High Performance Computing - Public
MUST-containers
Commits
20a0c828
Verified
Commit
20a0c828
authored
1 year ago
by
Simon Schwitanski
Browse files
Options
Downloads
Patches
Plain Diff
Initial commit
parents
Branches
Branches containing commit
No related tags found
No related merge requests found
Pipeline
#375801
passed
1 year ago
Stage: build
Changes
3
Pipelines
1
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
.gitlab-ci.yml
+29
-0
29 additions, 0 deletions
.gitlab-ci.yml
Dockerfile
+104
-0
104 additions, 0 deletions
Dockerfile
README.md
+22
-0
22 additions, 0 deletions
README.md
with
155 additions
and
0 deletions
.gitlab-ci.yml
0 → 100644
+
29
−
0
View file @
20a0c828
image
:
docker:latest
services
:
-
name
:
docker:dind
command
:
[
"
--tls=false"
]
stages
:
-
build
variables
:
DOCKER_HOST
:
tcp://docker:2375
DOCKER_DRIVER
:
overlay2
DOCKER_TLS_CERTDIR
:
"
"
before_script
:
-
echo "$CI_REGISTRY_PASSWORD" | docker login $CI_REGISTRY --username $CI_REGISTRY_USER --password-stdin
build
:
stage
:
build
variables
:
LLVM_VERSION
:
14
MUST_VERSION
:
1.9.2
parallel
:
matrix
:
-
MPI_FLAVOR
:
[
mpich
,
openmpi
]
script
:
-
docker build -f Dockerfile -t $CI_REGISTRY_IMAGE:${MUST_VERSION}-${MPI_FLAVOR}-llvm${LLVM_VERSION} --build-arg MPI_FLAVOR=${MPI_FLAVOR} --build-arg LLVM_VERSION=${LLVM_VERSION} --build-arg MUST_VERSION=${MUST_VERSION} .
-
docker push $CI_REGISTRY_IMAGE:${MUST_VERSION}-${MPI_FLAVOR}-llvm${LLVM_VERSION}
tags
:
-
"
privileged"
This diff is collapsed.
Click to expand it.
Dockerfile
0 → 100644
+
104
−
0
View file @
20a0c828
ARG
MPI_FLAVOR=mpich
FROM
debian:12
AS
base
ARG
LLVM_VERSION=14
ENV
DEBIAN_FRONTEND=noninteractive
ENV
TZ=Europe/Berlin
ENV
PATH=/opt/must/bin:$PATH
RUN
apt-get update
&&
apt-get
-y
-qq
--no-install-recommends
install
\
build-essential
\
&&
rm
-rf
/var/lib/apt/lists/
*
RUN
apt-get update
\
&&
apt-get
-y
-qq
--no-install-recommends
install
\
cmake
\
curl
\
binutils-dev
\
make
\
automake
\
autotools-dev
\
autoconf
\
libtool
\
zlib1g
\
zlib1g-dev
\
libatomic1
\
libfabric-dev
\
libxml2-dev
\
python3
\
python3-pip
\
python3-venv
\
gfortran
\
gcc
\
g++
\
git
\
graphviz
\
libgtest-dev
\
clang-
${
LLVM_VERSION
}
\
libomp-
${
LLVM_VERSION
}
-dev
\
clang-format-
${
LLVM_VERSION
}
\
llvm-
${
LLVM_VERSION
}
\
lldb-
${
LLVM_VERSION
}
\
ninja-build
\
vim
\
openssh-client
\
gdb
\
wget
\
googletest
\
&&
apt-get
-yq
clean
\
&&
rm
--recursive
--force
/var/lib/apt/lists/
*
# Ensure that correct LLVM toolset is used
RUN
ln
-s
/usr/bin/FileCheck-
${
LLVM_VERSION
}
/usr/bin/FileCheck
RUN
ln
-s
/usr/bin/clang-
${
LLVM_VERSION
}
/usr/bin/clang
RUN
ln
-s
/usr/bin/clang++-
${
LLVM_VERSION
}
/usr/bin/clang++
RUN
ln
-s
/usr/bin/clang-format-
${
LLVM_VERSION
}
/usr/bin/clang-format
ENV
CC=clang
ENV
CXX=clang++
FROM
base
AS
base-mpich
RUN
apt-get update
\
&&
apt-get
-y
-qq
--no-install-recommends
install
\
mpich
\
libmpich-dev
\
&&
apt-get
-yq
clean
\
&&
rm
--recursive
--force
/var/lib/apt/lists/
*
ENV
MPICH_CC=clang
ENV
MPICH_CXX=clang++
FROM
base
AS
base-openmpi
RUN
apt-get update
\
&&
apt-get
-y
-qq
--no-install-recommends
install
\
openmpi-bin
\
libopenmpi-dev
\
&&
apt-get
-yq
clean
\
&&
rm
--recursive
--force
/var/lib/apt/lists/
*
ENV
OMPI_CC=clang
ENV
OMPI_CXX=clang++
FROM
base-${MPI_FLAVOR}
AS
final
ARG
MUST_VERSION=1.9.2
# Build and install MUST
RUN
mkdir
-p
/opt/must/
RUN
wget https://hpc.rwth-aachen.de/must/files/MUST-v
${
MUST_VERSION
}
.tar.gz
&&
\
tar
-xf
MUST-v
${
MUST_VERSION
}
.tar.gz
&&
cd
MUST-v
${
MUST_VERSION
}
&&
\
mkdir
build
&&
\
cd
build
&&
\
CC
=
clang
CXX
=
clang++
MPICH_CC
=
clang
MPICH_CXX
=
clang++
OMPI_CC
=
clang
OMPI_CXX
=
clang
\
cmake ..
-DCMAKE_INSTALL_PREFIX
=
/opt/must
-DUSE_BACKWARD
=
ON
-DENABLE_FORTRAN
=
ON
-DCMAKE_BUILD_TYPE
=
RelWithDebInfo
&&
\
make
install
-j8
install-prebuilds
&&
\
rm
/MUST-v
${
MUST_VERSION
}
.tar.gz
&&
\
rm
-r
-f
/MUST-v
${
MUST_VERSION
}
# Run as non-privileged user
RUN
useradd
-ms
/bin/bash user
USER
user
\ No newline at end of file
This diff is collapsed.
Click to expand it.
README.md
0 → 100644
+
22
−
0
View file @
20a0c828
# MUST Docker Images
Provides different MUST docker images.
## Registry
The registry with all images is available here:
<https://git-ce.rwth-aachen.de/hpc-public/must-containers/container_registry>
## CI: Select Images to Build
Check
[
.gitlab-ci.yml
](
.gitlab-ci.yml
)
and update
`LLVM_VERSION`
,
`MUST_VERSION`
,
`MPI_FLAVOR`
accordingly.
Currently, only LLVM as compiler is supported.
## Build Image Manually
```
docker build -f Dockerfile -t my_image_tag \
--build-arg MPI_FLAVOR=${MPI_FLAVOR} \
--build-arg LLVM_VERSION=${LLVM_VERSION} \
--build-arg MUST_VERSION=${MUST_VERSION} .
```
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment