Verified Commit 345c0218 authored by Dom Sekotill's avatar Dom Sekotill
Browse files

Add Docker image files

parents
Loading
Loading
Loading
Loading

Dockerfile

0 → 100644
+12 −0
Original line number Diff line number Diff line
FROM debian:bookworm as entrypoint
    
LABEL org.opencontainers.image.title="Dovecot"
LABEL org.opencontainers.image.description="A popular mailbox server with LMTP and SASL"
LABEL org.opencontainers.image.authors="Dom Sekotill <dom.sekotill@kodo.org.uk>"
LABEL org.opencontainers.image.source="https://code.kodo.org.uk/docker/dovecot"
LABEL org.opencontainers.image.licenses="(MIT AND LGPv2)"

ARG DOVECOT_VERSION=">=1:2.3.19,<<1:2.3.20"
RUN --mount=source=install.bash,target=/install /install "${DOVECOT_VERSION}"

COPY dovecot.conf /etc/dovecot/

dovecot.conf

0 → 100644
+25 −0
Original line number Diff line number Diff line
!include_try /usr/share/dovecot/protocols.d/*.protocol

# Default mount location for certificates is */etc/tls*
# Certificate chain is expected in *tls.crt*
# Private key is expected to be in *tls.key*
# These filenames are standard for a Kubernetes TLS secret
ssl_cert = </etc/tls/tls.crt
ssl_key = </etc/tls/tls.key

# These are some good defaults for TLS
ssl = required
ssl_min_protocol = TLSv1.2
ssl_cipher_list = DEFAULT
ssl_prefer_server_ciphers = yes

# User-supplied configurations, MAY override settings above
!include /etc/dovecot/conf.d/*.conf

# Log to stdio
log_path = /dev/stderr
info_log_path = /dev/stdout

# Users set up by Debian package
default_login_user = dovenull
default_internal_user = dovecot

install.bash

0 → 100755
+22 −0
Original line number Diff line number Diff line
#!/bin/bash
set -eu

PACKAGES=( dovecot-mysql dovecot-imapd dovecot-lmtpd )
RESTRICTIONS=()
IFS=,

for restriction in $1; do
	RESTRICTIONS+=( "dovecot-core ($restriction)" )
done

apt update
apt satisfy -y "${RESTRICTIONS[*]}" "${PACKAGES[@]}"

mkdir -p /usr/share/dovecot/config

# postinstall, remove most configuration
rm -r /etc/dovecot/*

# Make expected mount points and set ownership and permissions
mkdir --mode=0700 /etc/tls
chown root:root /etc/tls