| Matthias Andreas Benkard | 9dabdab | 2024-03-06 13:12:09 +0100 | [diff] [blame] | 1 | FROM alpine:3.19 |
| 2 | LABEL maintainer "The Infrastructure Company GmbH GmbH <info@servercow.de>" |
| Matthias Andreas Benkard | 4edeb9f | 2021-01-02 15:32:21 +0100 | [diff] [blame] | 3 | |
| Matthias Andreas Benkard | 9dabdab | 2024-03-06 13:12:09 +0100 | [diff] [blame] | 4 | # renovate: datasource=github-releases depName=tianon/gosu versioning=semver-coerced extractVersion=^(?<version>.*)$ |
| Matthias Andreas Benkard | d63fe56 | 2023-11-18 13:18:30 +0100 | [diff] [blame] | 5 | ARG GOSU_VERSION=1.16 |
| Matthias Andreas Benkard | 9dabdab | 2024-03-06 13:12:09 +0100 | [diff] [blame] | 6 | |
| 7 | ENV LANG C.UTF-8 |
| 8 | ENV LC_ALL C.UTF-8 |
| Matthias Andreas Benkard | 4edeb9f | 2021-01-02 15:32:21 +0100 | [diff] [blame] | 9 | |
| Matthias Andreas Benkard | d63fe56 | 2023-11-18 13:18:30 +0100 | [diff] [blame] | 10 | |
| Matthias Andreas Benkard | 4edeb9f | 2021-01-02 15:32:21 +0100 | [diff] [blame] | 11 | # Add groups and users before installing Dovecot to not break compatibility |
| Matthias Andreas Benkard | 9dabdab | 2024-03-06 13:12:09 +0100 | [diff] [blame] | 12 | RUN addgroup -g 5000 vmail \ |
| 13 | && addgroup -g 401 dovecot \ |
| 14 | && addgroup -g 402 dovenull \ |
| 15 | && sed -i "s/999/99/" /etc/group \ |
| 16 | && addgroup -g 999 sogo \ |
| 17 | && addgroup nobody sogo \ |
| 18 | && adduser -D -u 5000 -G vmail -h /var/vmail vmail \ |
| 19 | && adduser -D -G dovecot -u 401 -h /dev/null -s /sbin/nologin dovecot \ |
| 20 | && adduser -D -G dovenull -u 402 -h /dev/null -s /sbin/nologin dovenull \ |
| 21 | && apk add --no-cache --update \ |
| 22 | bash \ |
| 23 | bind-tools \ |
| 24 | findutils \ |
| 25 | envsubst \ |
| Matthias Andreas Benkard | 4edeb9f | 2021-01-02 15:32:21 +0100 | [diff] [blame] | 26 | ca-certificates \ |
| Matthias Andreas Benkard | 4edeb9f | 2021-01-02 15:32:21 +0100 | [diff] [blame] | 27 | curl \ |
| Matthias Andreas Benkard | 4edeb9f | 2021-01-02 15:32:21 +0100 | [diff] [blame] | 28 | jq \ |
| Matthias Andreas Benkard | 9dabdab | 2024-03-06 13:12:09 +0100 | [diff] [blame] | 29 | lua \ |
| 30 | lua-cjson \ |
| Matthias Andreas Benkard | 8f91594 | 2021-08-16 10:57:25 +0200 | [diff] [blame] | 31 | lua-socket \ |
| Matthias Andreas Benkard | 9dabdab | 2024-03-06 13:12:09 +0100 | [diff] [blame] | 32 | libssl-dev \ |
| 33 | lua-sql-mysql \ |
| 34 | lua5.3-sql-mysql \ |
| 35 | icu-data-full \ |
| 36 | mariadb-connector-c \ |
| 37 | gcompat \ |
| Matthias Andreas Benkard | 4edeb9f | 2021-01-02 15:32:21 +0100 | [diff] [blame] | 38 | mariadb-client \ |
| Matthias Andreas Benkard | 9dabdab | 2024-03-06 13:12:09 +0100 | [diff] [blame] | 39 | perl \ |
| 40 | perl-ntlm \ |
| 41 | perl-cgi \ |
| 42 | perl-crypt-openssl-rsa \ |
| 43 | perl-utils \ |
| 44 | perl-crypt-ssleay \ |
| 45 | perl-data-uniqid \ |
| 46 | perl-dbd-mysql \ |
| 47 | perl-dbi \ |
| 48 | perl-digest-hmac \ |
| 49 | perl-dist-checkconflicts \ |
| 50 | perl-encode-imaputf7 \ |
| 51 | perl-file-copy-recursive \ |
| 52 | perl-file-tail \ |
| 53 | perl-io-socket-inet6 \ |
| 54 | perl-io-gzip \ |
| 55 | perl-io-socket-ssl \ |
| 56 | perl-io-tee \ |
| 57 | perl-ipc-run \ |
| 58 | perl-json-webtoken \ |
| 59 | perl-mail-imapclient \ |
| 60 | perl-module-implementation \ |
| 61 | perl-module-scandeps \ |
| 62 | perl-net-ssleay \ |
| 63 | perl-package-stash \ |
| 64 | perl-package-stash-xs \ |
| 65 | perl-par-packer \ |
| 66 | perl-parse-recdescent \ |
| 67 | perl-lockfile-simple --repository=http://dl-cdn.alpinelinux.org/alpine/edge/community/ \ |
| 68 | libproc \ |
| 69 | perl-readonly \ |
| 70 | perl-regexp-common \ |
| 71 | perl-sys-meminfo \ |
| 72 | perl-term-readkey \ |
| 73 | perl-test-deep \ |
| 74 | perl-test-fatal \ |
| 75 | perl-test-mockobject \ |
| 76 | perl-test-mock-guard \ |
| 77 | perl-test-pod \ |
| 78 | perl-test-requires \ |
| 79 | perl-test-simple \ |
| 80 | perl-test-warn \ |
| 81 | perl-try-tiny \ |
| 82 | perl-unicode-string \ |
| 83 | perl-proc-processtable \ |
| 84 | perl-app-cpanminus \ |
| Matthias Andreas Benkard | 4edeb9f | 2021-01-02 15:32:21 +0100 | [diff] [blame] | 85 | procps \ |
| Matthias Andreas Benkard | 9dabdab | 2024-03-06 13:12:09 +0100 | [diff] [blame] | 86 | python3 \ |
| 87 | py3-mysqlclient \ |
| 88 | py3-html2text \ |
| 89 | py3-jinja2 \ |
| 90 | py3-redis \ |
| 91 | redis \ |
| Matthias Andreas Benkard | 4edeb9f | 2021-01-02 15:32:21 +0100 | [diff] [blame] | 92 | syslog-ng \ |
| Matthias Andreas Benkard | 9dabdab | 2024-03-06 13:12:09 +0100 | [diff] [blame] | 93 | syslog-ng-redis \ |
| 94 | syslog-ng-json \ |
| 95 | supervisor \ |
| 96 | tzdata \ |
| Matthias Andreas Benkard | 8f91594 | 2021-08-16 10:57:25 +0200 | [diff] [blame] | 97 | wget \ |
| Matthias Andreas Benkard | 9dabdab | 2024-03-06 13:12:09 +0100 | [diff] [blame] | 98 | dovecot \ |
| 99 | dovecot-dev \ |
| Matthias Andreas Benkard | 4edeb9f | 2021-01-02 15:32:21 +0100 | [diff] [blame] | 100 | dovecot-lmtpd \ |
| Matthias Andreas Benkard | 9dabdab | 2024-03-06 13:12:09 +0100 | [diff] [blame] | 101 | dovecot-lua \ |
| Matthias Andreas Benkard | 4edeb9f | 2021-01-02 15:32:21 +0100 | [diff] [blame] | 102 | dovecot-ldap \ |
| 103 | dovecot-mysql \ |
| Matthias Andreas Benkard | 9dabdab | 2024-03-06 13:12:09 +0100 | [diff] [blame] | 104 | dovecot-sql \ |
| 105 | dovecot-submissiond \ |
| 106 | dovecot-pigeonhole-plugin \ |
| Matthias Andreas Benkard | 4edeb9f | 2021-01-02 15:32:21 +0100 | [diff] [blame] | 107 | dovecot-pop3d \ |
| Matthias Andreas Benkard | 9dabdab | 2024-03-06 13:12:09 +0100 | [diff] [blame] | 108 | dovecot-fts-solr \ |
| 109 | && arch=$(arch | sed s/aarch64/arm64/ | sed s/x86_64/amd64/) \ |
| 110 | && wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$arch" \ |
| 111 | && chmod +x /usr/local/bin/gosu \ |
| 112 | && gosu nobody true |
| 113 | |
| 114 | # RUN cpan LockFile::Simple |
| Matthias Andreas Benkard | d63fe56 | 2023-11-18 13:18:30 +0100 | [diff] [blame] | 115 | # imapsync dependencies |
| 116 | RUN cpan Crypt::OpenSSL::PKCS12 |
| Matthias Andreas Benkard | 4edeb9f | 2021-01-02 15:32:21 +0100 | [diff] [blame] | 117 | |
| 118 | COPY trim_logs.sh /usr/local/bin/trim_logs.sh |
| 119 | COPY clean_q_aged.sh /usr/local/bin/clean_q_aged.sh |
| 120 | COPY syslog-ng.conf /etc/syslog-ng/syslog-ng.conf |
| 121 | COPY syslog-ng-redis_slave.conf /etc/syslog-ng/syslog-ng-redis_slave.conf |
| 122 | COPY imapsync /usr/local/bin/imapsync |
| Matthias Andreas Benkard | 8f91594 | 2021-08-16 10:57:25 +0200 | [diff] [blame] | 123 | COPY imapsync_runner.pl /usr/local/bin/imapsync_runner.pl |
| Matthias Andreas Benkard | 4edeb9f | 2021-01-02 15:32:21 +0100 | [diff] [blame] | 124 | COPY report-spam.sieve /usr/lib/dovecot/sieve/report-spam.sieve |
| 125 | COPY report-ham.sieve /usr/lib/dovecot/sieve/report-ham.sieve |
| 126 | COPY rspamd-pipe-ham /usr/lib/dovecot/sieve/rspamd-pipe-ham |
| 127 | COPY rspamd-pipe-spam /usr/lib/dovecot/sieve/rspamd-pipe-spam |
| 128 | COPY sa-rules.sh /usr/local/bin/sa-rules.sh |
| 129 | COPY maildir_gc.sh /usr/local/bin/maildir_gc.sh |
| 130 | COPY docker-entrypoint.sh / |
| 131 | COPY supervisord.conf /etc/supervisor/supervisord.conf |
| 132 | COPY stop-supervisor.sh /usr/local/sbin/stop-supervisor.sh |
| 133 | COPY quarantine_notify.py /usr/local/bin/quarantine_notify.py |
| 134 | COPY quota_notify.py /usr/local/bin/quota_notify.py |
| 135 | COPY repl_health.sh /usr/local/bin/repl_health.sh |
| 136 | |
| 137 | ENTRYPOINT ["/docker-entrypoint.sh"] |
| 138 | CMD exec /usr/bin/supervisord -c /etc/supervisor/supervisord.conf |