aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Dockerfile79
-rw-r--r--docker/README.md24
-rw-r--r--etc/README.md3
3 files changed, 71 insertions, 35 deletions
diff --git a/Dockerfile b/Dockerfile
index a2467dba..2ff1bc4d 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,42 +1,44 @@
-FROM alpine:3.9 as build
+FROM alpine:3.10 as build
WORKDIR /opensmtpd
-# libressl is used for testing only
RUN apk add --no-cache \
- ca-certificates \
- automake \
autoconf \
- libtool \
- gcc \
- make \
- musl-dev \
+ automake \
bison \
+ ca-certificates \
+ fts-dev \
+ gcc \
+ libasr-dev \
libevent-dev \
libtool \
- libasr-dev \
- fts-dev \
- zlib-dev \
- libressl-dev \
- libressl
+ libtool \
+ make \
+ musl-dev \
+ openssl \
+ openssl-dev \
+ zlib-dev
-#For testing
-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 && \
- chmod 711 /var/spool/smtpd
+# For testing
+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 \
+ && chmod 711 /var/spool/smtpd
COPY . /opensmtpd
-#build opensmtpd
-RUN rm -r /usr/local/
-RUN ./bootstrap && \
- ./configure --with-gnu-ld --sysconfdir=/etc/mail --with-path-empty=/var/lib/opensmtpd/empty/ && \
- make && \
- make install
+# build opensmtpd
+RUN rm -r /usr/local/ \
+ && ./bootstrap \
+ && ./configure --with-gnu-ld \
+ --sysconfdir=/etc/mail \
+ --with-path-empty=/var/lib/opensmtpd/empty \
+ && make \
+ && make install
-FROM alpine:3.9
+FROM alpine:3.10
LABEL maintainer="Arthur Moore <Arthur.Moore.git@cd-net.net>"
EXPOSE 25
@@ -50,17 +52,24 @@ WORKDIR /var/spool/smtpd
ENTRYPOINT ["smtpd", "-d"]
CMD ["-P", "mda"]
-RUN apk add --no-cache libressl libevent libasr fts zlib ca-certificates && \
- 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 /etc/mail/ && \
- mkdir -p /var/spool/smtpd && \
- chmod 711 /var/spool/smtpd
+RUN apk add --no-cache \
+ ca-certificates \
+ fts \
+ libasr \
+ libevent \
+ openssl \
+ zlib \
+ && 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 /etc/mail \
+ && mkdir -p /var/mail \
+ && mkdir -p /var/spool/smtpd \
+ && chmod 711 /var/spool/smtpd
COPY --from=build /usr/local/ /usr/local/
COPY smtpd/smtpd.conf /etc/mail
-#OpenSMTPD needs root permissions to open port 25.
-#It immediately changes to running as _smtpd after that.
+# OpenSMTPD needs root permissions to open port 25.
+# It immediately changes to running as _smtpd after that.
diff --git a/docker/README.md b/docker/README.md
new file mode 100644
index 00000000..0eae21b2
--- /dev/null
+++ b/docker/README.md
@@ -0,0 +1,24 @@
+# Dockerfiles
+
+## Disclaimer
+
+This folder contains dockerfiles that can be used for developing and OpenSMTPD.
+These dockerfiles are intended to be used for dev/test cycle and ARE NOT
+intended to be a delivery mechanism for end users and should not be published
+on external resouces like DockerHub. Dockerfiles in this folder can be used as
+a reference for package maintainers of various distributions.
+
+
+## Usage
+
+For each distribution there is a separate dockerfile with a distro name
+suffixed. E.g. `Dockerfile.alpine` is a dockerfile that builds OpenSMTPD in
+Alpine Linux environment
+
+To build:
+
+`docker build -f docker/Dockerfile.alpine -t opensmtpd-alpine`
+
+
+
+...to be continued..
diff --git a/etc/README.md b/etc/README.md
new file mode 100644
index 00000000..82a15cb7
--- /dev/null
+++ b/etc/README.md
@@ -0,0 +1,3 @@
+This directory will contain example OpenSMTPD config files that can be used as
+a reference or for testing specific usecases. Tests that are run as part of
+CI/CD process in docker containers will utilize these files.