mirror of
https://github.com/docker-mailserver/docker-mailserver.git
synced 2024-01-19 02:48:50 +00:00
19e96b5131
* fix: Source `VERSION` from image ENV Now CI builds triggered from tagged releases will always have the correct version. No need for manually updating a separate file. * fix: Query latest GH release tag Compare to the remote GH release tag published, rather than contents of a `VERSION` file. `VERSION` file remains in source for now as prior releases still rely on it for an update notification. * chore: Switch from `yq` to `jaq` - Can more easily express a string subslice. - Lighter weight: 9.3M vs 1.7M. - Drawback, no YAML input/output support. If `yq` is preferred, the `v` prefix could be removed via BASH easily enough. * chore: Add entry to `CHANGELOG.md` * ci: `VERSION` has no relevance to `:edge` * docs: Update build guide + simplify `make build` --------- Co-authored-by: Georg Lauterbach <44545919+georglauterbach@users.noreply.github.com>
2.1 KiB
2.1 KiB
title |
---|
Tutorials | Docker Build |
Building your own Docker image
Submodules
You'll need to retrieve the git submodules prior to building your own Docker image. From within your copy of the git repo run the following to retrieve the submodules and build the Docker image:
git submodule update --init --recursive
docker build --tag <YOUR CUSTOM IMAGE NAME> .
Or, you can clone and retrieve the submodules in one command:
git clone --recurse-submodules https://github.com/docker-mailserver/docker-mailserver
About Docker
Minimum supported version
We make use of build features that require a recent version of Docker. v23.0 or newer is advised, but earlier releases may work.
- To get the latest version for your distribution, please have a look at the official installation documentation for Docker.
- If you are using a version of Docker prior to v23.0, you will need to enable BuildKit via the ENV
DOCKER_BUILDKIT=1
.
Build Arguments (Optional)
The Dockerfile
includes several build ARG
instructions that can be configured:
DOVECOT_COMMUNITY_REPO
: Install Dovecot from the community repo instead of from Debian (default = 1)DMS_RELEASE
: The image version (default = edge)VCS_REVISION
: The git commit hash used for the build (default = unknown)
!!! note
- `DMS_RELEASE` (_when not `edge`_) will be used to check for updates from our GH releases page at runtime due to the default feature [`ENABLE_UPDATE_CHECK=1`][docs::env-update-check].
- Both `DMS_RELEASE` and `VCS_REVISION` are also used with `opencontainers` metadata [`LABEL`][docker-docs::builder-label] instructions.