mirror of
https://github.com/mailscope/kumomta.git
synced 2026-08-19 19:08:17 +00:00
90 lines
2.6 KiB
Markdown
90 lines
2.6 KiB
Markdown
# Installing KumoMTA in a Docker container
|
|
|
|
|
|
To build a lightweight alpine-based docker image:
|
|
|
|
- Prepare your system with the needed essentials (see[ System Preparation](./system_preparation.md))
|
|
- Ensure docker is actually installed in your server instance.
|
|
|
|
## APT based systems
|
|
|
|
In Ubuntu, Debian, and other Debial APT package management systems:
|
|
|
|
```bash
|
|
sudo apt update
|
|
sudo apt install -y apt-utils docker.io
|
|
sudo snap install docker
|
|
```
|
|
|
|
## DNF based systems
|
|
|
|
In Rocky, Alma, and any other DNF package manager system
|
|
|
|
```bash
|
|
sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
|
|
sudo dnf update -y
|
|
sudo dnf install -y docker-ce docker-ce-cli containerd.io
|
|
sudo systemctl enable docker
|
|
```
|
|
|
|
If you get an error that `/etc/rc.d/rc.local is not marked executable` then make it executable with `sudo chmod +x /etc/rc.d/rc.local`
|
|
|
|
|
|
### Start Docker
|
|
|
|
`sudo systemctl start docker`
|
|
|
|
### Check if Docker is running
|
|
|
|
`systemctl status docker`
|
|
|
|
### Enable Non-Root User Access
|
|
|
|
After completing Step 3, you can use Docker by prepending each command with sudo. To eliminate the need for administrative access authorization, set up a non-root user access by following the steps below.
|
|
|
|
1. Use the usermod command to add the user to the docker system group.
|
|
`sudo usermod -aG docker $USER`
|
|
|
|
2. Confirm the user is a member of the docker group by typing:
|
|
`id $USER`
|
|
|
|
It is a good idea to restart to make sure it is all set correctly (init 6)
|
|
|
|
### Build the docker image
|
|
|
|
At the time of this writing, the Docker image needs to be built from the project repo. You will need to clone the repo and then build the image from `./docker`.
|
|
|
|
```bash
|
|
sudo dnf install -y git
|
|
git clone https://github.com/kumomta/kumomta.git
|
|
|
|
cd kumomta/docker/redis/
|
|
sudo docker build -t redis-cell .
|
|
docker run --name redis -p 6379:6379 -d redis-cell
|
|
cd ../..
|
|
sudo ./docker/kumod/build-docker-image.sh
|
|
```
|
|
|
|
This should result in something roughly like this:
|
|
|
|
```bash
|
|
docker image ls kumomta/kumod
|
|
REPOSITORY TAG IMAGE ID CREATED SIZE
|
|
kumomta/kumod latest bbced15ff4d1 3 minutes ago 116MB
|
|
```
|
|
|
|
You can then run that image; this invocation mounts the kumo src dir at `/config` and then the `KUMO_POLICY` environment
|
|
variable is used to override the default `/config/policy.lua` path to use the SMTP sink policy script [sink.lua](https://github.com/kumomta/kumomta/blob/main/sink.lua), which will accept and discard all mail:
|
|
|
|
```bash
|
|
$ sudo docker run --rm -p 2025:25 \
|
|
-v .:/config \
|
|
--name kumo-sink \
|
|
--env KUMO_POLICY="/config/sink.lua" \
|
|
kumomta/kumod
|
|
```
|
|
|
|
|
|
|
|
|