Skip to content

Commit af4d621

Browse files
committed
#76 Add Dockerfile.system
1 parent e471ee8 commit af4d621

File tree

3 files changed

+72
-10
lines changed

3 files changed

+72
-10
lines changed

.github/workflows/docker-portability-system.yml

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,7 @@ jobs:
1919
include:
2020
- tags: |
2121
chaste/runner:${{ github.event.inputs.ubuntu_release }}.portability-system
22-
build-args: |
23-
BASE=${{ github.event.inputs.ubuntu_release }}
24-
XSD=system
25-
XERCESC=system
26-
SUNDIALS=system
27-
BOOST=system
28-
VTK=system
29-
PETSC=system
30-
HDF5=system
22+
build-args: BASE=${{ github.event.inputs.ubuntu_release }}
3123
3224
steps:
3325
- name: Checkout
@@ -49,6 +41,7 @@ jobs:
4941
uses: docker/build-push-action@v5
5042
with:
5143
context: .
44+
file: ./Dockerfile.system
5245
pull: true
5346
load: true
5447
tags: ${{ matrix.tags }}

Dockerfile

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
# Build the image:
2+
# docker build -t chaste/runner:portability-test .
3+
4+
# Run the container in interactive mode:
5+
# docker run --init -it -e RUNNER_OFF=1 chaste/runner:portability-test /bin/bash
6+
7+
# Run the container:
8+
# docker run --init -it chaste/runner:portability-test
9+
110
ARG BASE=jammy
211

312
FROM ubuntu:${BASE}
@@ -14,13 +23,15 @@ SHELL ["/bin/bash", "-e", "-o", "pipefail", "-c"]
1423

1524
USER root
1625

26+
# Setup base dependencies and install actions runner
27+
1728
ENV DEFAULT_USER="runner" \
1829
DEFAULT_HOME="/home/runner" \
1930
RUNNER_DIR="/home/runner/actions-runner" \
2031
RUNNER_WORK_DIR="/home/runner/_work" \
2132
MODULES_DIR="/home/runner/modules"
2233

23-
COPY scripts/ /usr/local/bin/
34+
COPY scripts/custom/ /usr/local/bin/
2435

2536
RUN useradd -r -m -d ${DEFAULT_HOME} -s /bin/bash ${DEFAULT_USER} && \
2637
os_id="$(. /etc/os-release && echo ${VERSION_ID} | sed 's/\.//')" && \
@@ -36,6 +47,8 @@ RUN useradd -r -m -d ${DEFAULT_HOME} -s /bin/bash ${DEFAULT_USER} && \
3647
USER ${DEFAULT_USER}:${DEFAULT_USER}
3748
WORKDIR ${DEFAULT_HOME}
3849

50+
# Build Chaste dependencies from source
51+
3952
RUN source /etc/profile.d/modules.sh && \
4053
mkdir -p ${MODULES_DIR}/modulefiles && \
4154
module use ${MODULES_DIR}/modulefiles && \

Dockerfile.system

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
# Build the image:
2+
# docker build -t chaste/runner:portability-system .
3+
4+
# Run the container in interactive mode:
5+
# docker run --init -it -e RUNNER_OFF=1 chaste/runner:portability-system /bin/bash
6+
7+
# Run the container:
8+
# docker run --init -it chaste/runner:portability-system
9+
10+
ARG BASE=jammy
11+
12+
FROM ubuntu:${BASE}
13+
14+
SHELL ["/bin/bash", "-e", "-o", "pipefail", "-c"]
15+
16+
USER root
17+
18+
# Setup Chaste dependencies and install actions runner
19+
20+
ENV DEFAULT_USER="runner" \
21+
DEFAULT_HOME="/home/runner" \
22+
RUNNER_DIR="/home/runner/actions-runner" \
23+
RUNNER_WORK_DIR="/home/runner/_work" \
24+
MODULES_DIR="/home/runner/modules"
25+
26+
COPY scripts/system/ /usr/local/bin/
27+
28+
RUN useradd -r -m -d ${DEFAULT_HOME} -s /bin/bash ${DEFAULT_USER} && \
29+
os_id="$(. /etc/os-release && echo ${VERSION_ID} | sed 's/\.//')" && \
30+
setup_ubuntu${os_id}.sh && \
31+
runner_install.sh --install_dir="/tmp/tmp-runner" && \
32+
/tmp/tmp-runner/bin/installdependencies.sh && \
33+
apt-get -y clean && \
34+
rm -rf /var/cache/apt && \
35+
rm -rf /var/lib/apt/lists/* && \
36+
rm -rf /var/tmp/* && \
37+
rm -rf /tmp/*
38+
39+
USER ${DEFAULT_USER}:${DEFAULT_USER}
40+
WORKDIR ${DEFAULT_HOME}
41+
42+
# Add modulefile stubs for system dependency versions
43+
44+
RUN source /etc/profile.d/modules.sh && \
45+
mkdir -p ${MODULES_DIR}/modulefiles && \
46+
module use ${MODULES_DIR}/modulefiles && \
47+
echo "module use ${MODULES_DIR}/modulefiles" >> ${DEFAULT_HOME}/.bashrc && \
48+
install_modulefiles.sh --modules-dir=${MODULES_DIR} && \
49+
module test boost && \
50+
module test xsd && \
51+
module test xercesc && \
52+
module test petsc_hdf5 && \
53+
module test sundials && \
54+
module test vtk
55+
56+
ENTRYPOINT ["docker-entrypoint.sh"]

0 commit comments

Comments
 (0)