-
Notifications
You must be signed in to change notification settings - Fork 16
/
Copy pathDockerfile.EESSI-build-node-debian12
48 lines (37 loc) · 2.27 KB
/
Dockerfile.EESSI-build-node-debian12
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
ARG cvmfsversion=2.11.2
ARG archspecversion=0.2.2
ARG awscliversion=1.32.22
ARG fuseoverlayfsversion=1.10
FROM debian:12.5 AS prepare-deb
ARG cvmfsversion
COPY ./containers/build-or-download-cvmfs-debs.sh /build-or-download-cvmfs-debs.sh
RUN sh /build-or-download-cvmfs-debs.sh ${cvmfsversion}
FROM debian:12.5
ARG cvmfsversion
ARG archspecversion
ARG awscliversion
ARG fuseoverlayfsversion
COPY --from=prepare-deb /root/deb /root/deb
RUN apt-get update
RUN apt-get install -y sudo vim openssh-client gawk autofs curl attr uuid fuse3 libfuse2 psmisc gdb uuid-dev lsof strace
# python3 and jq are required for eessi-upload-to-staging script (next to awscli)
RUN apt-get install -y python3-pip python3-venv jq
RUN dpkg -i /root/deb/cvmfs_${cvmfsversion}~1+debian12_$(dpkg --print-architecture).deb \
/root/deb/cvmfs-fuse3_${cvmfsversion}~1+debian12_$(dpkg --print-architecture).deb \
/root/deb/cvmfs-libs_${cvmfsversion}~1+debian12_$(dpkg --print-architecture).deb \
/root/deb/cvmfs-config-default_latest_all.deb \
/root/deb/cvmfs-config-eessi_latest_all.deb
# download binary for specific version of fuse-overlayfs
RUN curl -L -o /usr/local/bin/fuse-overlayfs https://github.com/containers/fuse-overlayfs/releases/download/v${fuseoverlayfsversion}/fuse-overlayfs-$(uname -m) \
&& chmod +x /usr/local/bin/fuse-overlayfs
RUN echo 'CVMFS_QUOTA_LIMIT=10000' > /etc/cvmfs/default.local \
&& echo 'CVMFS_CLIENT_PROFILE="single"' >> /etc/cvmfs/default.local \
&& echo 'CVMFS_HIDE_MAGIC_XATTRS=yes' >> /etc/cvmfs/default.local
RUN mkdir -p /cvmfs/software.eessi.io
RUN useradd -ms /bin/bash eessi
RUN python3 -m venv /opt/archspec && . /opt/archspec/bin/activate && pip3 install archspec==${archspecversion} && deactivate && ln -s /opt/archspec/bin/archspec /usr/local/bin/archspec
# stick to awscli v1.x, 2.x is not available through PyPI (see https://github.com/aws/aws-cli/issues/4947)
RUN python3 -m venv /opt/awscli && . /opt/awscli/bin/activate && pip3 install awscli==${awscliversion} && deactivate && ln -s /opt/awscli/bin/aws /usr/local/bin/aws
RUN curl -OL https://raw.githubusercontent.com/EESSI/eessi-bot-software-layer/develop/scripts/eessi-upload-to-staging \
&& mv eessi-upload-to-staging /usr/bin \
&& chmod a+x /usr/bin/eessi-upload-to-staging