-
Notifications
You must be signed in to change notification settings - Fork 1
/
Dockerfile-AL9-MNXB11-dev
70 lines (55 loc) · 2.35 KB
/
Dockerfile-AL9-MNXB11-dev
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
FROM almalinux:9.4
# Add Repositories
## Adding epel for screen and xclock
RUN dnf -y install epel-release
# Update repo db
RUN dnf -y update
# Installing
## Various deps
RUN dnf -y install vim man screen xclock xdg-utils xorg-x11-xauth
## Python dependencies - note the crb repo install for venv dependencies
RUN dnf -y --enablerepo=crb install python python3-pip python3-virtualenv
## Broken meld dependencies in Alma Linux
RUN dnf -y install python3-cairo python3-gobject
## Python dependencies used in some of the tutorial exercises to generate data
RUN dnf -y install python3-numpy
## Deps for coding (e.g. building root
RUN dnf -y install patch libuuid libuuid-devel
## Unix utilities
RUN dnf -y install findutils gawk grep
## Compilation/Build tools
RUN dnf -y install git make cmake gcc-c++ gcc binutils clang clang-tools-extra
## Deps for building ROOT
RUN dnf -y install libX11-devel libXpm-devel libXft-devel libXext-devel python openssl-devel compat-openssl11
## Deps added by request of students
RUN dnf -y install fftw fftw-libs fftw-devel fftw-static fftw2 fftw2-devel fftw2-static
# Environment
## Dir for course specific material
ENV MNXB11_MNXB11DIR=/opt
## Dir for all downloads
ENV MNXB11_DOWNLOADS=${MNXB11_MNXB11DIR}/download
RUN mkdir ${MNXB11_DOWNLOADS}
## Dir for all sources, a subfolder for each source tree
ENV MNXB11_SOURCEDIR=${MNXB11_MNXB11DIR}/source
RUN mkdir $MNXB11_SOURCEDIR
## Dir for all builds, a subfolder for each build environment
ENV MNXB11_BUILDDIR=${MNXB11_MNXB11DIR}/build
RUN mkdir $MNXB11_BUILDDIR
## Dir for all binaries, a subfolder for each software
ENV MNXB11_APPS=${MNXB11_MNXB11DIR}/apps
RUN mkdir ${MNXB11_APPS}
## Dir for all scripts
ENV MNXB11_SCRIPTS=${MNXB11_MNXB11DIR}/scripts
RUN mkdir ${MNXB11_SCRIPTS}
# ROOT build
# Download sources
ADD https://root.cern/download/root_v6.28.04.source.tar.gz ${MNXB11_DOWNLOADS}/root_v6.28.04.source.tar.gz
# Unpack
RUN tar zxf ${MNXB11_DOWNLOADS}/root_v6.28.04.source.tar.gz -C ${MNXB11_SOURCEDIR}
# Add all scripts in a scripts folder where this is ran
ADD scripts/* ${MNXB11_SCRIPTS}/
# Run bash as the container starts - removed 2024, causes problems on some systems
#CMD ["/bin/bash"]
# Initialize environment a la Einar, I decided to hardcode the path here instead of moving stuff
# init.sh must be inside the scripts path as the other scripts
ENTRYPOINT ["/opt/scripts/init.sh"]