-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile
93 lines (83 loc) · 3 KB
/
Dockerfile
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
FROM ubuntu:22.04
# Build command
# docker build -t ghcr.io/converged-computing/ensemble-quicksilver:libfabric .
# docker push ghcr.io/converged-computing/ensemble-quicksilver:libfabric
# Compilers, autotools
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && \
apt-get -qq install -y --no-install-recommends \
apt-utils \
autotools-dev \
autoconf \
automake \
bzip2 \
build-essential \
ca-certificates \
clang \
clang-tidy \
curl \
dnsutils \
gcc \
g++ \
git \
gfortran \
jq \
libibverbs-dev \
librdmacm-dev \
libtool \
libffi-dev \
locales \
make \
pkg-config \
python3-dev \
python3-pip \
rdma-core \
sudo \
strace \
telnet \
unzip \
wget && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
RUN locale-gen en_US.UTF-8
ENV LANG=C.UTF-8
WORKDIR /opt
RUN git clone -b v1.21.1 /~https://github.com/ofiwg/libfabric.git /opt/libfabric && \
cd /opt/libfabric && ./autogen.sh && \
./configure --enable-efa=yes --enable-tcp=yes --enable-udp=yes --enable-sockets=yes --enable-verbs=yes --enable-shm=yes --enable-mrail=yes --enable-rxd=yes --enable-rxm=yes && \
make -j 4 && make install
RUN wget https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-4.1.2.tar.gz && \
tar -xzvf openmpi-4.1.2.tar.gz && \
cd openmpi-4.1.2 && \
./configure --with-ofi=/usr/local && \
make -j 4 && make install && ldconfig
# Finally, install oras for saving artifacts
RUN export VERSION="1.1.0" && \
curl -LO "/~https://github.com/oras-project/oras/releases/download/v${VERSION}/oras_${VERSION}_linux_amd64.tar.gz" && \
mkdir -p oras-install/ && \
tar -zxf oras_${VERSION}_*.tar.gz -C oras-install/ && \
mv oras-install/oras /usr/local/bin/ && \
rm -rf oras_${VERSION}_*.tar.gz oras-install/
ENV PATH=/usr/local/pancakes/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ENV LD_LIBRARY_PATH=/usr/local/pancakes/lib:/usr/local/lib
RUN apt-get update && apt-get install -y openssh-client openssh-server cmake && apt-get clean
RUN echo " LogLevel ERROR" >> /etc/ssh/ssh_config && \
echo " StrictHostKeyChecking no" >> /etc/ssh/ssh_config && \
echo " UserKnownHostsFile=/dev/null" >> /etc/ssh/ssh_config && \
cd /root && \
mkdir -p /run/sshd && \
ssh-keygen -t rsa -N "" -f /root/.ssh/id_rsa && chmod og+rX . && \
cd .ssh && cat id_rsa.pub > authorized_keys && chmod 644 authorized_keys
EXPOSE 22
WORKDIR /opt
COPY ./Makefile /opt/Makefile.qs
RUN mkdir quicksilver && \
cd quicksilver && \
git init && \
git remote add origin /~https://github.com/LLNL/Quicksilver && \
git fetch --depth 1 origin eb68bb8d6fc53de1f65011d4e79ff2ed0dd60f3b && \
git checkout FETCH_HEAD && \
mv /opt/Makefile.qs src/Makefile
WORKDIR /opt/quicksilver/src
RUN make && cp qs /usr/bin/qs
WORKDIR /opt/quicksilver/Examples