blob: 764d6dc4399fa196a856303d1208f914bbfd2872 (
plain)
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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
|
ARG USER
FROM $USER/debian-stretch-jenkins
# Arguments used after FROM must be specified again
ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org"
MAINTAINER Pau Espin Pedrol <pespin@sysmocom.de>
# Create jenkins user
RUN useradd -ms /bin/bash jenkins
# Create osmo-gsm-tester group and add user to it
RUN groupadd osmo-gsm-tester
RUN usermod -a -G osmo-gsm-tester jenkins
# install osmo-gsm-tester dependencies
RUN apt-get update && \
apt-get install -y --no-install-recommends \
dbus \
tcpdump \
sqlite3 \
python3 \
python3-setuptools \
python3-yaml \
python3-mako \
python3-gi \
python3-numpy \
python3-wheel \
python3-watchdog \
ofono \
patchelf \
sudo \
libcap2-bin \
python3-pip \
udhcpc \
iperf3 \
locales
# install osmo-gsm-tester pip dependencies
RUN pip3 install \
"git+https://github.com/podshumok/python-smpplib.git@master#egg=smpplib" \
pydbus \
pyusb \
pysispm
# Intall sshd:
RUN apt-get update && apt-get install -y openssh-server
RUN mkdir /var/run/sshd
COPY ssh /root/.ssh
COPY --chown=jenkins:jenkins ssh /home/jenkins/.ssh
RUN chmod -R 0700 /home/jenkins/.ssh /root/.ssh
# Create directories for slaves with correct file permissions:
RUN mkdir -p /osmo-gsm-tester-srsue \
/osmo-gsm-tester-srsenb \
/osmo-gsm-tester-srsepc \
/osmo-gsm-tester-trx \
/osmo-gsm-tester-grbroker
RUN chown -R jenkins:jenkins \
/osmo-gsm-tester-srsue \
/osmo-gsm-tester-srsenb \
/osmo-gsm-tester-srsepc \
/osmo-gsm-tester-trx \
/osmo-gsm-tester-grbroker
# Set a UTF-8 locale
RUN sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && \
dpkg-reconfigure --frontend=noninteractive locales && \
update-locale LANG=en_US.UTF-8
ENV LANG en_US.UTF-8
# We require a newer patchelf 0.11 (OS#4389)
ADD https://github.com/NixOS/patchelf/archive/0.11.tar.gz /tmp/patchelf-0.11.tar.gz
RUN cd /tmp && \
tar -zxf /tmp/patchelf-0.11.tar.gz && \
cd patchelf-0.11 && \
autoreconf -fi && \
./configure --prefix=/usr/local && \
make && \
make install
ARG OSMOCOM_REPO="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/Debian_9.0/"
COPY .common/Release.key /tmp/Release.key
RUN apt-key add /tmp/Release.key && \
rm /tmp/Release.key && \
echo "deb " $OSMOCOM_REPO " ./" > /etc/apt/sources.list.d/osmocom-nightly.list
ADD $OSMOCOM_REPO/Release /tmp/Release
RUN apt-get update && \
apt-get install -y --no-install-recommends \
telnet \
libosmocore-dev \
libosmo-abis-dev \
libosmo-gsup-client-dev \
libosmo-netif-dev \
libosmo-ranap-dev \
libosmo-sccp-dev \
libosmo-sigtran-dev \
libsmpp34-dev \
libgtp-dev \
libasn1c-dev && \
apt-get clean
# install srsLTE runtime dependencies
RUN apt-get update && \
apt-get install -y --no-install-recommends \
cmake \
libfftw3-dev \
libmbedtls-dev \
libboost-program-options-dev \
libconfig++-dev \
libsctp-dev \
libpcsclite-dev \
libuhd-dev \
libczmq-dev \
libsoapysdr-dev \
soapysdr0.7-module-lms7 && \
apt-get clean
# install gnuradio runtime dependencies
RUN apt-get update && \
apt-get install -y --no-install-recommends \
gnuradio && \
apt-get clean
WORKDIR /tmp
ARG OSMO_GSM_TESTER_BRANCH="master"
RUN git clone git://git.osmocom.org/osmo-gsm-tester.git
ADD http://git.osmocom.org/osmo-gsm-tester/patch?h=$OSMO_GSM_TESTER_BRANCH /tmp/commit
RUN cd osmo-gsm-tester && \
git fetch && git checkout $OSMO_GSM_TESTER_BRANCH && \
(git symbolic-ref -q HEAD && git reset --hard origin/$OSMO_GSM_TESTER_BRANCH || exit 1); \
git rev-parse --abbrev-ref HEAD && git rev-parse HEAD
# Install osmo-ci.git/scripts to /usr/local/bin
ADD http://git.osmocom.org/osmo-ci/patch /tmp/osmo-ci-commit
RUN git clone https://git.osmocom.org/osmo-ci osmo-ci && \
cp -v $(find osmo-ci/scripts \
-maxdepth 1 \
-type f ) \
/usr/local/bin
# Copy several scripts and permission for osmo-gsm-tester:
RUN mkdir -p /usr/local/bin/ && cp osmo-gsm-tester/utils/bin/* /usr/local/bin/
RUN mkdir -p /etc/sudoers.d/ && cp osmo-gsm-tester/utils/sudoers.d/* /etc/sudoers.d/
RUN mkdir -p /etc/security/limits.d/ && cp osmo-gsm-tester/utils/limits.d/* /etc/security/limits.d/
VOLUME /data
COPY resources.conf /tmp/osmo-gsm-tester/sysmocom/resources.conf
WORKDIR /data
CMD ["/bin/sh", "-c", "/data/osmo-gsm-tester-master.sh >/data/osmo-gsm-tester.log 2>&1"]
EXPOSE 22/tcp
|