-
Notifications
You must be signed in to change notification settings - Fork 0
/
Dockerfile
64 lines (51 loc) · 1.72 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
FROM alpine:3.14 as build
# preparing the workspace
RUN set -xe; \
apk update; \
apk add --virtual .build alpine-sdk git sudo
RUN set -xe; \
adduser -D build; \
addgroup build abuild; \
echo 'build ALL=(ALL) NOPASSWD: /bin/mkdir, /bin/cp' > /etc/sudoers.d/build; \
sudo -u build abuild-keygen -a -n -i; \
rm /etc/sudoers.d/build
COPY . /app
# building opendbx
RUN set -xe; \
chown -R build /app; \
cd /app/opendbx; \
chmod -R 777 /app/opendbx; \
sudo -u build abuild checksum && sudo -u build abuild -r
# fetching the APKBUILD for opendkim
RUN set -xe; \
cd /tmp; \
sudo -u build git init; \
sudo -u build git remote add origin -f git://git.alpinelinux.org/aports; \
sudo -u build git config core.sparsecheckout true; \
echo "community/opendkim/*" >> .git/info/sparse-checkout; \
sudo -u build git pull --depth=1 origin 3.14-stable
# patching opendkim
RUN set -xe; \
echo '/home/build/packages/app' >> /etc/apk/repositories; \
apk update; \
mv /tmp/community/opendkim /app/opendkim; \
cd /app/opendkim/; \
sed -i -e 's/\(sysconfdir.*\)/\1 \\/' -e '/sysconfdir/a \\t\t--with-odbx' APKBUILD; \
sed -i 's/\(makedepends="\)/\1opendbx-dev /' APKBUILD
# building opendkim
RUN set -xe; \
cd /app/opendkim/; \
apkgrel -a .; \
sudo -u build abuild checksum && sudo -u build abuild -r
FROM alpine:3.14
COPY --from=build /home/build/packages/app /tmp/pkgs
COPY --from=build /etc/apk/keys/build* /etc/apk/keys/
RUN set -xe; \
echo '/tmp/pkgs' >> /etc/apk/repositories; \
apk update; \
apk add opendkim; \
rm -R /tmp/pkgs; \
install -d -o opendkim -g opendkim /run/opendkim
VOLUME /etc/opendkim
USER opendkim
CMD ["/usr/sbin/opendkim","-f"]