Git Product home page Git Product logo

docker's Introduction

Dovecot CE docker image source files

This repository contains Dockerfile and assets for images that are published to https://hub.docker.com/u/dovecot.

License

The source code for these docker images is licensed under Attribution-NonCommercial-ShareAlike 4.0 International, but you are welcome to use the images hosted at docker.com for commercial purposes.

Instructions

This image comes with default configuration which accepts any user with password pass. To customize the image, mount /etc/dovecot and /srv/mail volumes. Listeners

  • POP3 on 110, TLS 995
  • IMAP on 143, TLS 993
  • Submission on 587
  • LMTP on 24
  • ManageSieve on 4190

To run these images, simply use docker run dovecot/dovecot:version.

From 2.3.20+ you can also mount /etc/dovecot/conf.d with configuration files, that are going to get read by Dovecot. You can use these to overwrite or add settings. Files must end in .conf.

Help

Note that these images come with absolutely no warranty or support. For questions and feedback send email to [email protected].

docker's People

Contributors

cmouse avatar espositocloud avatar sirainen avatar villesavolainen avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

docker's Issues

Don't force-add `/etc/dovecot` as a volume

Admins usually don't configure configuration directories as a docker volume. Instead, they read-only-bind-mount individual config files directly – in my case just dovecot.conf. However this leads to an unused docker volume per container creation/start, slowly eating up disk space.

My proposal would be to not declare VOLUME /etc/dovecot in the Dockerfile.

Native arm64 support

I am in the process of migration from Intel Mac to M1. The current image works fine on M1 with emulation but I appreciate if you officially provide native arm64 version. Or it is also nice if you publish the official Dockerfile so that we can build one for arm processor.

Unable to locate package dovecot-lua

In the 2.3.21 directory, docker build . leads to:

#8 [4/5] RUN apt-get -y update && apt-get -y install   tini   dovecot-core   dovecot-gssapi   dovecot-imapd   dovecot-ldap   dovecot-lmtpd   dovecot-lua   dovecot-managesieved   dovecot-mysql   dovecot-pgsql   dovecot-pop3d   dovecot-sieve   dovecot-solr   dovecot-sqlite   dovecot-submissiond   ca-certificates   ssl-cert &&   rm -rf /var/lib/apt/lists &&   groupadd -g 1000 vmail &&   useradd -u 1000 -g 1000 vmail -d /srv/vmail &&   passwd -l vmail &&   rm -rf /etc/dovecot &&   mkdir /srv/mail &&   chown vmail:vmail /srv/mail &&   make-ssl-cert generate-default-snakeoil &&   mkdir /etc/dovecot &&   ln -s /etc/ssl/certs/ssl-cert-snakeoil.pem /etc/dovecot/cert.pem &&   ln -s /etc/ssl/private/ssl-cert-snakeoil.key /etc/dovecot/key.pem
#8 sha256:6c8895a87a454e0ec47d5150bdf3f29601c617b00ae4029285348417cb6e8819
#8 0.636 Err:1 https://repo.dovecot.org/ce-2.3.21/debian/bullseye bullseye InRelease
#8 0.636   Certificate verification failed: The certificate is NOT trusted. The certificate issuer is unknown.  Could not handshake: Error in the certificate verification. [IP: 94.237.82.12 443]
#8 0.677 Get:2 http://deb.debian.org/debian bullseye InRelease [116 kB]
#8 0.745 Get:3 http://deb.debian.org/debian-security bullseye-security InRelease [48.4 kB]
#8 0.769 Get:4 http://deb.debian.org/debian bullseye-updates InRelease [44.1 kB]
#8 0.894 Get:5 http://deb.debian.org/debian bullseye/main amd64 Packages [8183 kB]
#8 1.619 Get:6 http://deb.debian.org/debian-security bullseye-security/main amd64 Packages [246 kB]
#8 1.640 Get:7 http://deb.debian.org/debian bullseye-updates/main amd64 Packages [17.5 kB]
#8 2.226 Fetched 8655 kB in 2s (5235 kB/s)
#8 2.226 Reading package lists...
#8 2.492 W: https://repo.dovecot.org/ce-2.3.21/debian/bullseye/dists/bullseye/InRelease: No system certificates available. Try installing ca-certificates.
#8 2.492 W: Failed to fetch https://repo.dovecot.org/ce-2.3.21/debian/bullseye/dists/bullseye/InRelease  Certificate verification failed: The certificate is NOT trusted. The certificate issuer is unknown.  Could not handshake: Error in the certificate verification. [IP: 94.237.82.12 443]
#8 2.492 W: Some index files failed to download. They have been ignored, or old ones used instead.
#8 2.498 Reading package lists...
#8 2.764 Building dependency tree...
#8 2.826 Reading state information...
#8 2.877 E: Unable to locate package dovecot-lua

Allow config file to be extended

Would be nice to be able to extend the image by simply adding an additional config file, instead of having to rewrite the existing file.

I think what is needed is:

  1. Dockerfile: create /etc/dovecot/conf.d
  2. Dockerfile: add "/etc/dovecot/conf.d" to VOLUME command
  3. dovecot.conf: Add !include conf.d/*.conf at end of file

(Yes, I know dovecot config can be accessed via volume ... but being able to extend dovecot container image by adding an additional config file in new Dockerfile would be very useful...)

Container does not map to any ports

Hi,
I wanted to use this docker image and tried the following:

docker run dovecot/dovecot:2.3.20

It is starting up the cotainer as expected but no ports are mapped to it and I am not able to connect to the IMAP interface.

docker container ps

results in this:

CONTAINER ID   IMAGE                    COMMAND                  CREATED          STATUS          PORTS     NAMES
db8193af8c60   dovecot/dovecot:2.3.20   "/usr/bin/tini -- /u…"   12 seconds ago   Up 11 seconds             eager_hodgkin

I expected a basic running IMAP server or am I wrong in this assumption?

favour --init instead of manually invoking tini

docker run --name dovecot \
 -v /etc/letsencrypt:/etc/letsencrypt:ro \
 -v /etc/dovecot:/etc/dovecot:ro \
 -v /srv/mail:/srv/mail \
 --init -it --rm dovecot/dovecot
[WARN  tini (7)] Tini is not running as PID 1 and isn't registered as a child subreaper.
Zombie processes will not be re-parented to Tini, so zombie reaping won't work.
To fix the problem, use the -s option or set the environment variable TINI_SUBREAPER to register Tini as a child subreaper, or run Tini as PID 1.
Dec 29 00:06:11 master: Info: Dovecot v2.3.20 (80a5ac675d) starting up for imap, pop3, submission, sieve, lmtp

vs

docker run --name dovecot \
 -v /etc/letsencrypt:/etc/letsencrypt:ro \
 -v /etc/dovecot:/etc/dovecot:ro \
 -v /srv/mail:/srv/mail \
 -it --rm dovecot/dovecot

I argue that using --init is the way forward instead of invoking tini manually?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.