For other items (files, directories) that do not require ADD’s tar
auto-extraction capability, you should always use COPY.
docker run --rm -i lukasmartinelli/hadolint < Dockerfile
shows:
/dev/stdin:49 DL3020 Use COPY instead of ADD for files and folders
/dev/stdin:50 DL3020 Use COPY instead of ADD for files and folders
/dev/stdin:62 DL3020 Use COPY instead of ADD for files and folders
/dev/stdin:63 DL3020 Use COPY instead of ADD for files and folders
/dev/stdin:77 DL3020 Use COPY instead of ADD for files and folders
/dev/stdin:78 DL3020 Use COPY instead of ADD for files and folders
/dev/stdin:81 DL3020 Use COPY instead of ADD for files and folders
/dev/stdin:82 DL3020 Use COPY instead of ADD for files and folders
/dev/stdin:85 DL3020 Use COPY instead of ADD for files and folders
/dev/stdin:89 DL3020 Use COPY instead of ADD for files and folders
/dev/stdin:107 DL3020 Use COPY instead of ADD for files and folders
/dev/stdin:109 DL3020 Use COPY instead of ADD for files and folders
The 'ADD' instruction can handle directories as source. It is no need
to add every script in 'target/bin' explicitly. New scripts can be
added without touching the Dockerfile.
* Improve and extend setup.sh
Add subcommands 'debug show-mail-logs', 'inspect', 'login'. Add option
'-c' to specify the name of the running container. Add option '-i' to
specify the image name.
* Add tests for setup.sh
The option '--check' checks for new mails without actually fetching
or deleting mail. Without '--check' 'debug-fetchmail' throws errors if
the external mail accout has new mails and the smtp daemon is not
running.
Most developers implement new docker-mailserver features on feature
branches before they create a pull request. This commit enables Travis
CI testing on all branches except 'donttestme'. Developers now can
'pre-test' their features branches without permanentaly hacking
'.travis.yml'. More testing is good!
The letsencrypt-auto client creates cert.pem, chain.pem, fullchain.pem, and
privkey.pem in its default settings. The simp_le client creates cert.pem,
fullchain.pem, and key.pem in its default settings.
A check for either privkey.pem or key.pem was added.
The chain.pem file was only used by the letsencrypt code for the creation of
combined.pem, which is not used by either postfix or dovecot.
The code to create a combined.pem file for letsencrypt was removed, as was the
corresponding test.
This commit adds a script nammed 'listmailuser'. './setup.sh' uses this
this script for its subcommand './setup.sh email list'. A test have
been added too.
To setup the mailserver large snippets of shell code had to past in a
console. Instead of:
mkdir -p config
touch config/postfix-accounts.cf
docker run --rm \
-e MAIL_USER=user1@domain.tld \
-e MAIL_PASS=mypassword \
-ti tvial/docker-mailserver:latest \
/bin/sh -c 'echo "$MAIL_USER|$(doveadm pw -s SHA512-CRYPT -u
$MAIL_USER -p $MAIL_PASS)"' >> config/postfix-accounts.cf
you can specify:
./setup.sh email add user1@domain.tld mypassword
This wrapper script can be easily extended. It uses the scripts already
builtin.
* Wrote functional tests for desired behavior.
Redoing the pull request, starting from current master.
The tests now fail where expected.
* Updated commands to handle missing files better.
The functional tests now pass.
The config file target/dovecot/dovecot.conf is not used to build the
docker-mailserver image. All tests are working without this file. The
additional config file config/dovecot.cf won’t be loaded if
target/dovecot/dovecot.conf is used.