blob: 9250e45845fe969c1e6c92162d785ad3771ad95b (
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
|
FROM alpinelinux/build-base:latest-x86_64 AS apk-builder
RUN abuild-apk add -u \
gcc \
git \
linux-headers \
lua5.3-dev \
lua5.3-lzlib \
make \
musl-dev \
openssl-dev \
openssl-libs-static \
zlib-dev \
zlib-static \
zstd-dev \
zstd-static
ARG APK_TOOLS_COMMIT=74de0e9bd73d1af8720df40aa68d472943909804
RUN git clone https://gitlab.alpinelinux.org/alpine/apk-tools.git /tmp/apk-tools
WORKDIR /tmp/apk-tools
RUN git checkout $APK_TOOLS_COMMIT
RUN make -j$(nproc) static
FROM debian:11
LABEL maintainer="OpenWrt Maintainers"
ARG DEBIAN_FRONTEND=noninteractive
ARG BUILDBOT_VERSION=2.10.1
ARG BUILDBOT_CONFIG_SHA=unknown
ENV BUILDMASTER_CONFIG=config.ini
ENV BUILDMASTER_PHASE=1
USER root
RUN \
apt-get update && \
apt-get install -y \
build-essential \
gawk \
git-core \
gosu \
libncurses5-dev \
locales \
pv \
pwgen \
python3-venv \
python3-pip \
signify-openbsd \
wget && \
apt-get clean && \
localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8
RUN python3 -m venv /opt/venv
ENV PATH="/opt/venv/bin:$PATH"
RUN pip3 install -U pip
RUN \
pip3 install \
"buildbot==$BUILDBOT_VERSION" \
"buildbot-www==$BUILDBOT_VERSION" \
"buildbot-waterfall-view==$BUILDBOT_VERSION" \
"buildbot-console-view==$BUILDBOT_VERSION" \
"buildbot-grid-view==$BUILDBOT_VERSION" \
"buildbot-worker==$BUILDBOT_VERSION" \
pyOpenSSL \
service_identity
RUN \
sed -i \
's/Welcome to buildbot/Welcome to OpenWrt buildbot/' \
/opt/venv/lib/python*/site-packages/buildbot_www/static/scripts.js
RUN \
sed -i \
"s;\"col-sm-12\"><ul><li ng-repeat;\"col-sm-12\"><ul><li>OpenWrt buildbot config: <a href=\"https://git.openwrt.org/$BUILDBOT_CONFIG_SHA\">$BUILDBOT_CONFIG_SHA</a></li><li ng-repeat;" \
/opt/venv/lib/python*/site-packages/buildbot_www/static/scripts.js
ENV LANG=en_US.utf8
COPY docker/buildmaster/files/entry.sh /entry.sh
COPY docker/buildmaster/files/start.sh /start.sh
COPY phase1 /phase1
COPY phase2 /phase2
COPY scripts /scripts
COPY --from=apk-builder /tmp/apk-tools/src/apk.static /usr/bin/apk
RUN \
groupadd buildbot && \
useradd \
--create-home --home-dir /master \
--comment "OpenWrt buildbot" \
--gid buildbot --shell /bin/bash buildbot && \
chown buildbot:buildbot /master && \
chmod 0755 /entry.sh /start.sh
RUN \
mkdir -p /home/buildbot && \
chmod u=rwx,go= /home/buildbot && \
chown --recursive buildbot:buildbot /home/buildbot && \
gosu buildbot sh -c "gpg --homedir /home/buildbot/.gnupg --recv-keys 0x1D53D1877742E911"
VOLUME [ "/master" ]
ENTRYPOINT [ "/entry.sh" ]
CMD [ "start" ]
|