1
0
mirror of https://github.com/docker-mailserver/docker-mailserver.git synced 2025-08-08 23:06:49 +02:00
Commit Graph

2198 Commits

Author SHA1 Message Date
69aef2e94f Bugfix: './setup.sh email list' does not display aliases correctly (#2881) 2022-11-04 22:39:05 +01:00
5f671a4c0b docs(CONTRIBUTORS): update contributors (#2883)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2022-11-01 21:36:02 +01:00
776b8c1192 chore(deps): Bump docker/setup-qemu-action from 2.0.0 to 2.1.0 (#2880)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Casper <casperklein@users.noreply.github.com>
2022-10-31 18:23:24 +01:00
cfb87d4c86 chore(deps): Bump docker/setup-buildx-action from 2.0.0 to 2.2.1 (#2879) 2022-10-31 15:58:17 +01:00
e32a530c15 setup.sh: Remove __err function (#2876) 2022-10-31 10:46:00 +01:00
1e65f95a3b Add OS version to issue template (#2870) 2022-10-30 01:32:23 +02:00
897d84f0f9 scripts: Improve error handling, when parameters are missing (#2854) 2022-10-29 11:04:35 +02:00
caf2338201 Run fetchmail not in verbose mode (#2859) 2022-10-25 10:41:01 +02:00
d8f4b74715 chore(deps): Bump docker/metadata-action from 4.1.0 to 4.1.1 (#2860) 2022-10-24 19:44:39 +02:00
907fd8b09e chore(deps): Bump peaceiris/actions-gh-pages from 3.8.0 to 3.9.0 (#2861) 2022-10-24 19:42:28 +02:00
c4df9c116b Follow up for #2849 (#2853) 2022-10-23 12:57:07 +02:00
474eb503ae Fix: Make fetchmail data persistant (#2851) 2022-10-23 03:12:27 +02:00
edb3fb1880 setup: fix unbound variable error (#2849) 2022-10-22 14:43:17 +13:00
b60b4015ab chore(deps): Bump docker/build-push-action from 3.1.1 to 3.2.0 (#2835)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Casper <casperklein@users.noreply.github.com>
2022-10-17 17:54:27 +00:00
70493092ff chore(deps): Bump docker/metadata-action from 4.0.1 to 4.1.0 (#2836)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-17 19:52:35 +02:00
a930aeb18a Remove unusual space from shebang line (#2834) 2022-10-17 10:40:09 +02:00
284c44faa9 build: cleaned up Makefile (#2833) 2022-10-17 08:08:04 +13:00
ac795a5976 fix: run Amavis cron job only when Amavis is enabled (#2831) 2022-10-16 11:52:53 +02:00
032ed00a17 fail2ban: enable network bans (#2818) 2022-10-15 12:01:59 +02:00
6d016ba592 Run user-patches.sh right before starting daemons (#2817) 2022-10-14 23:11:29 +00:00
c92a67f91e Fix typo (#2830) 2022-10-15 11:32:25 +13:00
488b256e95 ci: misc test enhancements (#2815)
Co-authored-by: Brennan Kinney <5098581+polarathene@users.noreply.github.com>
2022-10-14 09:48:28 +02:00
4bae8eb1d9 release: v11.2.0 (#2790) v11.2.0 2022-10-13 10:58:27 +02:00
70ad765a30 tests(fix): Avoid introducing CRLF into postfix-accounts.cf during setup (#2820)
Currently a change detection would be triggered and during processing, a CRLF is converted to LF, which updates the `postfix-accounts.cf` file and triggers another change event.

No need for the first approach to add an account, and it is the culprit for causing the CRLF to appear.
2022-10-09 19:43:39 +02:00
ff969509f8 ci: fix/improve Fail2Ban tests (#2808) 2022-10-05 12:19:49 +02:00
c52211b950 tests: Adding three more seconds to wait for health check (#2810) 2022-10-02 23:25:09 +02:00
4ab23061a1 style: minor adjustments (#2786)
Co-authored-by: Casper <casperklein@users.noreply.github.com>
2022-10-02 13:00:15 +02:00
a8b0bc23f8 docs(CONTRIBUTORS): update contributors (#2807)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2022-10-01 16:59:14 +02:00
8385db1538 Dockerfile: use heredocs (#2805) 2022-10-01 00:07:06 +02:00
157fde23af Add ability to build with Dovecot community repository (#2797) 2022-09-29 23:26:45 +02:00
a09d46a677 #2755 follow up; bring back fail2ban package installation (#2796) 2022-09-29 09:02:56 +02:00
98279e52b3 docs: add note about Docker version when building (#2799)
* add note about Docker version when building
* add note about `DOCKER_BUILDKIT` and build arguments
* provide link to COPY command
2022-09-28 09:25:07 +02:00
2da80bd5be chore(deps): Bump actions/stale from 5 to 6 (#2800)
Bumps [actions/stale](https://github.com/actions/stale) from 5 to 6.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-09-26 21:39:07 +02:00
fe2197ff7c update contributing documentation (#2789) 2022-09-23 08:23:20 +02:00
d6c7c2b3bc adjusting semver tag of a step in publish workflow (#2785)
This is a critical fix for https://github.com/docker-mailserver/docker-mailserver/actions/runs/3095956307/jobs/5011369215 so we can properly publish images again.
2022-09-21 20:07:10 +02:00
7fe6748637 add outputs to workflow_call on generic_build (#2780)
Looking at
https://docs.github.com/en/actions/using-workflows/reusing-workflows#using-outputs-from-a-reusable-workflow,
we can see that we need to manually set the outputs for a whole generic
workflow. This commit fixes an issue where the cache key was not set
properly as the input was empty (because the output of the previous job
was not actually set).
2022-09-21 10:18:18 +02:00
32c508aa2a ci: enhance build process (#2755)
This new script is a clean way of handling the installation of packages.
I think the huge `RUN` command in `Dockerfile` was hard to read and
maintain.

Using a script is a non-issue, as the image is rebuilt whenever the
script is touched.

Co-authored-by: Brennan Kinney <5098581+polarathene@users.noreply.github.com>
2022-09-21 09:31:28 +02:00
2efb40bb17 docs: fix typo in podman.md (#2782) 2022-09-20 10:31:47 +02:00
b906d1ba6b tests: Wait at least 30 seconds before checking the health state of the container (#2777) 2022-09-19 12:54:33 +02:00
1f137f3eca Only calculate checksums, when there are files to monitor. (#2776) 2022-09-19 10:45:40 +02:00
6113b99881 ci: adjust build arguments (#2772)
The build arguments `VCS_REF` and `VCS_VER` were renamed and given
proper values according to their names.

1. `VCS_REVISION` holds the current SHA sum of the (git) HEAD pointer
2. `VCS_VERSION` now holds the contents of the `VERSION` file, i.e. a
   semver version tag (one can now inspect the image and find a proper
   version tag in the `org.opencontainers.image.version` label)

The build arguments were given defaults in order to allow the
`generic_build` and `generic_test` workflows to omit them (as they are
not need there anyways). When publishing images, this is fina as the
cache will rebuild almost all of the image except the last few layers
which are `LABEL`s anyways.
2022-09-16 19:23:33 +02:00
f8e1bb0f42 ci: improve GitHub Action CI with re-usable workflows (#2753)
Mew re-usable workflows are introduced to handle building, testing and publishing the container
image in a uniform and easy way. Now, the `scheduled_builds`, `default_on_push`
and a part of the `test_merge_requests` workflow can use the same code
for building, testing and publishing the container images. This is DRY.

Co-authored-by: Brennan Kinney <5098581+polarathene@users.noreply.github.com>
2022-09-09 11:12:17 +02:00
8bc8fc873c improvement: Add reject_unknown_client_hostname to main.cf (#2691) 2022-09-06 08:58:55 +12:00
39774df85d scripts: improve helpers/log.sh (#2754)
This PR prepares for other PRs that use the newly introduced helper
functions. The `_log` function itself was adjusted a bit to be shorter
and more concise.
2022-09-03 20:59:56 +00:00
a6358ef7ef docs(CONTRIBUTORS): update contributors (#2759)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Casper <casperklein@users.noreply.github.com>
2022-09-03 22:01:32 +02:00
eefcec616b added link to brakkee.org for setup of docker-mailserver on kubernetes. (#2760) 2022-09-03 11:01:46 +02:00
e6f481b59f Streamline COPY statements in Dockerfile (#2747) 2022-08-30 00:33:15 +02:00
efed7d9e44 Remove unnecessary postconf switch '-e' and use single quotes where possible (#2746) 2022-08-29 13:26:44 +02:00
21fbbfabe1 ci: Better build caching for CI (#2742)
* ci: Cache builds by splitting into two jobs

For the cache to work properly, we need to derive a cache key from the build context (files that affect the Dockerfile build) instead of the cache key changing by commit SHA.

We also need to avoid a test suite failure from preventing the caching of a build, thus splitting into separate jobs.

This first attempt used `upload-artifact` and `download-artifact` to transfer the built image, but it has quite a bit of overhead and prevented multi-platform build (without complicating the workflow further).

* ci: Transfer to dependent job via cache only

While `download-artifact` + `docker load` is a little faster than rebuilding the image from cached layers, `upload-artifact` takes about 2 minutes to upload the AMD64 (330MB) tar image export (likely due to compression during upload?).

The `actions/cache` approach however does not incur that hit and is very quick (<10 secs) to complete it's post upload work. The dependent job still gets a cache-hit, and the build job is able to properly support multi-platform builds.

Added additional notes about timing and size of including ARM builds.

* ci: Move Dockerfile ARG to end of build

When the ARG changes due to commit SHA, it invalidates all cache due to the LABEL layers at the start. Then any RUN layers implicitly invalidate, even when the ARG is not used.

Introduced basic multi-stage build, and relocated the container config / metadata to the end of the build. This avoids invalidating expensive caching layers (size and build time) needlessly.
2022-08-28 11:42:42 +12:00
672e9cf19a tests: Ensure excessive FD limits are avoided (#2730)
* tests: Ensure excessive FD limits are avoided

Processes that run as daemons (`postsrsd` and `fail2ban-server`) initialize by closing all FDs (File Descriptors).

This behaviour queries that maximum limit and iterates through the entire range even if only a few FDs are open. In some environments (Docker, limit configured by distro) this can be a range exceeding 1 billion (from kernel default of 1024 soft, 4096 hard), causing an 8 minute delay with heavy CPU activity.

`postsrsd` has since been updated to use `close_range()` syscall, and `fail2ban` will now iterate through `/proc/self/fd` (open FDs) which should resolve the performance hit. Until those updates reach our Docker image, we need to workaround it with `--ulimit` option.

NOTE: If `docker.service` on a distro sets `LimitNOFILE=` to approx 1 million or lower, it should not be an issue. On distros such as Fedora 36, it is `LimitNOFILE=infinity` (approx 1 billion) that causes excessive delays.

* chore: Use Docker host limits instead

Typically on modern distros with systemd, this should equate to 1024 (soft) and 512K (hard) limits. A distro may override the built-in global defaults systemd sets via setting `DefaultLimitNOFILE=` in `/etc/systemd/user.conf` and `/etc/systemd/system.conf`.

* tests(fix): Better prevent non-deterministic failures

- `no_containers.bats` tests the external script `setup.sh` (without `-c`). It's expected that no existing DMS container is running  - otherwise it may attempt to use that container and fail. Detect this and fail early via `setup_file()` step.

- `mail_hostname.bats` had a odd timing failure with teardown due to the last tests bringing the containers down earlier (`docker stop` paired with the `docker run --rm`). Adding a moment of delay via `sleep` helps avoid that false positive scenario.
2022-08-23 11:24:23 +12:00