-
Notifications
You must be signed in to change notification settings - Fork 2
/
Dockerfile_hub
52 lines (37 loc) · 1.05 KB
/
Dockerfile_hub
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# Build with:
# docker build --build-arg MK="mk-2024.0-full.tar.gz" -t pcafrica/mk -f Dockerfile_hub .
# docker tag pcafrica/mk pcafrica/mk:2024.0
# Then push with:
# docker login
# docker push pcafrica/mk:latest
# docker push pcafrica/mk:2024.0
FROM ubuntu:latest AS mk_builder
MAINTAINER pasqualeclaudio.africa@polimi.it
# Define variables.
ARG MK
# Install dependencies.
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update -y && \
apt-get upgrade -y && \
apt-get install -y wget curl openssh-client zip unzip \
clang-format cppcheck doxygen graphviz
# Copy modules file.
COPY ${MK} /
# Un-tar modules.
RUN tar xvzf ${MK} -C / && \
rm ${MK}
FROM scratch AS mk
COPY --from=mk_builder / /
ENV HOME /root
# Enable modules by default.
RUN printf "\n# mk.\n\
source /u/sw/etc/profile\n\
module load gcc-glibc\n\
module load eigen tbb" >> ${HOME}/.bashrc
# Setup for MPI.
ENV OMPI_MCA_btl_vader_single_copy_mechanism=none
ENV OMPI_ALLOW_RUN_AS_ROOT=1
ENV OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1
# Set configuration variables.
USER root
WORKDIR ${HOME}