10 Commits
Author SHA1 Message Date
Guiorgy 6b66731850 docker: Use fixed UID/GID for daemon users
Currently, we rely on Debian to pick a UID and GID for daemon users.
However, those numbers can change as software evolves over time, in
particular as the base distribution changes.

Because those IDs are relevant in the data volume, which has a lifetime
independent from the daemon container, it is important that they don't
change.

Other projects have run into this issue over the years too, this is not
a purely theoretical concern.

This patch fixes the UID/GIDs for the daemon users to their current
values, to prevent problems in the future.

See https://github.com/albertito/chasquid/pull/72 for further
discussion.

Amended-by: Alberto Bertogli <albertito@blitiri.com.ar>
  Adjusted commit message, formatted RUN command line, changed the
  dovecot group ID to match the previous value.
2025-08-07 23:32:47 +01:00
Guiorgy 84ed777f95 docker: Use debian:stable-slim as the base, to reduce size
Using the "slim" version of the debian:stable image helps reduce size,
while having no impact on runtime usability or performance. The main
differences are around locale and manpages.

Amended-by: Alberto Bertogli <albertito@blitiri.com.ar>
  Adjusted commit message.
2025-08-07 23:19:18 +01:00
Guiorgy a9c1f88bd9 docker: Define the $AUTO_CERTS environment variable in the Dockerfile
For readability and clarity, define the $AUTO_CERTS environment variable
in the Dockerfile.

https://github.com/albertito/chasquid/pull/68

Amended-by: Alberto Bertogli <albertito@blitiri.com.ar>
  Adjusted commit message.
2025-08-03 11:11:48 +01:00
Guiorgy 2e6bc52f6a docker: Set DEBIAN_FRONTEND only during build
From the Dockerfile docs:

> Environment variable persistence can cause unexpected side effects.
> For example, setting ENV DEBIAN_FRONTEND=noninteractive changes the
> behavior of apt-get, and may confuse users of your image.
>
> If an environment variable is only needed during build, and not in the
> final image, consider setting a value for a single command instead.

So this patch adjusts the use of the DEBIAN_FRONTEND variable to match
the documented best practice.

https://github.com/albertito/chasquid/pull/68

Amended-by: Alberto Bertogli <albertito@blitiri.com.ar>
  Adjusted commit message.
2025-08-03 11:09:46 +01:00
Guiorgy c6e3fb42b0 docker: Cleanup apt packages and cache in build
This patch makes Docker build clean up the apt packages and cache, to
reduce the size of the final image.

https://github.com/albertito/chasquid/pull/68

Amended-by: Alberto Bertogli <albertito@blitiri.com.ar>
  Adjusted commit message.
2025-08-03 11:09:12 +01:00
Guiorgy 68ba0d2600 docker: Reduce Docker image layers
This patch halves the Docker image layers by following the best practice
of grouping some of the related commands together.

https://github.com/albertito/chasquid/pull/68

Amended-by: Alberto Bertogli <albertito@blitiri.com.ar>
  Adjusted commit message, adjust comment location.
2025-08-03 11:07:37 +01:00
Guiorgy 3ff26fa145 docker: Fix Dockerfile style warnings
This patch fixes some Dockerfile style warnings:

- `WARN: FromAsCasing: 'as' and 'FROM' keywords' casing do not match`
- `LegacyKeyValueFormat: "ENV key=value" should be used instead of
  legacy "ENV key value" format`

https://github.com/albertito/chasquid/pull/68

Amended-by: Alberto Bertogli <albertito@blitiri.com.ar>
  Adjusted commit message.
2025-08-03 11:03:16 +01:00
Guiorgy ad7975c826 docker: Use --rm in the example about adding users
When creating containers to run a single one-off command that alters a
volume, the `--rm` option is needed, otherwise that container is left
around and can cause confusion later on.

https://github.com/albertito/chasquid/pull/69

Amended-by: Alberto Bertogli <albertito@blitiri.com.ar>
  Adjusted commit message.
2025-08-03 10:34:37 +01:00
Guiorgy d82380901c docker: Add instructions for cross-compiling
This patch adds instructions on how to cross-compile the Docker build.

https://github.com/albertito/chasquid/pull/67

Amended-by: Alberto Bertogli <albertito@blitiri.com.ar>
  Adjusted commit message.
2025-08-03 10:28:43 +01:00
Guiorgy 2b9d1faabf docker: Force Unix line endings on docker/ files
When using git on Windows, git may try to "fix" line endings to CRLF.
Then, when building the Docker image, the files copied can end up having
the wrong line ending, which causes scripts to fail to run.

This patch fixes the problem by using .gitattributes to indicate to git
which line ending to use for the files in the docker/ directory.

https://github.com/albertito/chasquid/pull/66

Amended-by: Alberto Bertogli <albertito@blitiri.com.ar>
  Adjusted commit message, extended comment on .gitattributes.
2025-08-03 10:19:07 +01:00