aboutsummaryrefslogtreecommitdiffstats
path: root/ci/docker/Dockerfile.alpine
diff options
context:
space:
mode:
Diffstat (limited to 'ci/docker/Dockerfile.alpine')
-rw-r--r--ci/docker/Dockerfile.alpine50
1 files changed, 50 insertions, 0 deletions
diff --git a/ci/docker/Dockerfile.alpine b/ci/docker/Dockerfile.alpine
new file mode 100644
index 00000000..2c7c66fc
--- /dev/null
+++ b/ci/docker/Dockerfile.alpine
@@ -0,0 +1,50 @@
+FROM alpine:3.11 as build
+
+# creates /opensmtpd dir and makes all following commands to run in it
+# https://docs.docker.com/engine/reference/builder/#workdir
+WORKDIR /opensmtpd
+
+# install necessary packages
+RUN apk add --no-cache \
+ autoconf \
+ automake \
+ bison \
+ ca-certificates \
+ fts-dev \
+ gcc \
+ fts \
+ libevent-dev \
+ libtool \
+ libtool \
+ linux-pam-dev \
+ make \
+ musl-dev \
+ libressl \
+ libressl-dev \
+ zlib-dev
+
+# create users and directories
+# note: alpine uses busybox and useradd is not available there
+# also long flags are not available too, so sorry for the
+RUN mkdir -p /var/lib/opensmtpd/empty \
+ && adduser _smtpd -h /var/lib/opensmtpd/empty/ -D -H -s /bin/false \
+ && adduser _smtpq -h /var/lib/opensmtpd/empty/ -D -H -s /bin/false \
+ && mkdir -p /var/spool/smtpd \
+ && mkdir -p /var/mail \
+ && mkdir -p /etc/mail \
+ && chmod 711 /var/spool/smtpd
+
+# Copy contentes of the repo inside the container
+# https://docs.docker.com/engine/reference/builder/#copy
+COPY . /opensmtpd
+
+# build opensmtpd
+RUN ./bootstrap \
+ && ./configure \
+ --with-gnu-ld \
+ --sysconfdir=/etc/mail \
+ --with-auth-pam \
+ && make \
+ && make install \
+ && cp etc/aliases /etc/mail/aliases
+