blob: 59e933ed0abf1511fc2f02075a27a364cd6e0fce (
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
|
FROM ubuntu:xenial
# Can be overriden at build time
ARG BUILDSLAVE_PASSWORD=buildslave
RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get dist-upgrade -y \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
build-essential \
curl \
git \
openjdk-8-jdk \
openssh-server \
perl \
python \
python-dev \
python-pip \
python-psutil \
python3-crypto \
python3-pip \
python3-psutil \
python3-pyasn1 \
python3-setuptools \
srecord \
sudo \
tree \
unzip \
virtualenv \
wget \
zip \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
ADD requirements_*.txt /opt/
RUN pip -q install -r /opt/requirements_python2.txt \
&& pip3 -q install -r /opt/requirements_python3.txt
RUN wget "http://github.com/danmar/cppcheck/releases/download/1.81/cppcheck-1.81.tar.gz" \
-q -O /tmp/cppcheck.tar.gz \
&& tar -C /opt -xzf /tmp/cppcheck.tar.gz \
&& cd /opt/cppcheck-1.81 \
&& make CFGDIR=/opt/cppcheck-1.81/cfg \
&& make install \
&& rm -rf /tmp/cppcheck.tar.gz
RUN useradd -md /home/buildslave -s /bin/bash buildslave \
&& echo "buildslave:$BUILDSLAVE_PASSWORD" | chpasswd \
&& echo 'buildslave ALL = NOPASSWD: ALL' > /etc/sudoers.d/jenkins \
&& chmod 0440 /etc/sudoers.d/jenkins \
&& mkdir -p /var/run/sshd
USER buildslave
RUN mkdir -p /home/buildslave/tools \
&& curl -L 'https://developer.arm.com/-/media/Files/downloads/gnu-rm/6-2017q2/gcc-arm-none-eabi-6-2017-q2-update-linux.tar.bz2?revision=2cc92fb5-3e0e-402d-9197-bdfc8224d8a5?product=GNU%20Arm%20Embedded%20Toolchain,64-bit,,Linux,6-2017-q2-update' | tar -xj -C /home/buildslave/tools --strip-components=1 \
&& curl -L 'https://cmake.org/files/v3.7/cmake-3.7.2-Linux-x86_64.tar.gz' | tar -xz -C /home/buildslave/tools --strip-components=1
ENV PATH=/home/buildslave/tools/bin:${PATH}
USER root
ARG VERSION=3.28
RUN curl --create-dirs -fsSLo /usr/share/jenkins/slave.jar https://repo.jenkins-ci.org/public/org/jenkins-ci/main/remoting/${VERSION}/remoting-${VERSION}.jar \
&& chmod 755 /usr/share/jenkins \
&& chmod 644 /usr/share/jenkins/slave.jar
COPY jenkins-slave /usr/local/bin/jenkins-slave
RUN chmod 755 /usr/local/bin/jenkins-slave
ENTRYPOINT ["/usr/local/bin/jenkins-slave"]
|