-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile.system
executable file
·54 lines (42 loc) · 1.63 KB
/
Dockerfile.system
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
# Build the image:
# docker build -f Dockerfile.system --build-arg BASE=jammy -t chaste/runner:system .
# Run the container in interactive mode:
# docker run --init -it -e RUNNER_OFF=1 chaste/runner:system /bin/bash
# Run the container as a GitHub Actions runner:
# docker run --init -it chaste/runner:system
ARG BASE=jammy
FROM ubuntu:${BASE}
SHELL ["/bin/bash", "-e", "-o", "pipefail", "-c"]
USER root
ENV DEFAULT_USER="runner" \
DEFAULT_HOME="/home/runner" \
RUNNER_DIR="/home/runner/actions-runner" \
RUNNER_WORK_DIR="/home/runner/_work" \
MODULES_DIR="/home/runner/modules"
# Copy scripts
COPY scripts/*.sh scripts/system/ /usr/local/bin/
# Setup Chaste dependencies and install actions runner
RUN useradd -r -m -d ${DEFAULT_HOME} -s /bin/bash ${DEFAULT_USER} && \
setup_system.sh && \
runner_install.sh --install_dir="/tmp/tmp-runner" && \
/tmp/tmp-runner/bin/installdependencies.sh && \
apt-get -y clean && \
rm -rf /var/cache/apt && \
rm -rf /var/lib/apt/lists/* && \
rm -rf /var/tmp/* && \
rm -rf /tmp/*
USER ${DEFAULT_USER}:${DEFAULT_USER}
WORKDIR ${DEFAULT_HOME}
# Add modulefile stubs for system dependency versions
RUN source /etc/profile.d/modules.sh && \
mkdir -p ${MODULES_DIR}/modulefiles && \
module use ${MODULES_DIR}/modulefiles && \
echo "module use ${MODULES_DIR}/modulefiles" >> ${DEFAULT_HOME}/.bashrc && \
install_modulefiles.sh --modules-dir=${MODULES_DIR} && \
module test boost && \
module test xsd && \
module test xercesc && \
module test petsc_hdf5 && \
module test sundials && \
module test vtk
ENTRYPOINT ["docker-entrypoint.sh"]