Here I am keeping the dockerfiles I create or use for my projects.
- PHP-FPM with everything the Wordpress and Nextcloud need. Non-minimal!
- Postfix container
- Dovecot
- Rspamd
- Rsyslog
- *-cli images are used for backups
- Clamav
- Language tool that is not particulairly useful, since it does not allow you to use Premium features
- VSFTPD: from https://github.com/fauria/docker-vsftpd.git, needed to be build for ARM support.
Fedora uses Podman by default. For the repository's AMD64 + ARM64 builds, install Podman and the ARM64 userspace emulator once:
sudo dnf install podman qemu-user-static-aarch64Reboot after installing the emulator (or restart systemd-binfmt), authenticate,
then build all images:
./build.shPass directory names to build only selected images:
./build.sh php postfix syncAn image directory can provide a platforms file to override the default
platform list when an upstream binary is architecture-specific.
Image sources retained only for historical reference live under DEPRECATED/.
The default one-level */Dockerfile discovery intentionally does not build
Dockerfiles below that directory.
The script pushes both latest and a UTC timestamp tag to
harbor.andreybondarenko.com/library. It prefers Podman and falls back to
Docker Buildx. Both engines import and export reusable build layers through a
per-image Harbor repository below library/build-cache/; Podman accepts a
custom cache lifetime through CACHE_TTL and defaults to 720 hours. Set
LOGIN=0 when already authenticated, PULL=0 to build the current checkout
without updating it, or use ./build.sh --help for all overrides.
The home-k8s repository contains a Kubernetes CronJob that runs every Monday at
02:29 UTC. An upstream git-sync init container checks out this repository,
then the upstream Podman stable image invokes build.sh. Harbor credentials are
provided by External Secrets from kv/harbor; they are not stored in either Git
repository.
The CronJob republishes latest and creates immutable UTC timestamp tags. It
uses Podman's overlay storage driver on an XFS-backed EmptyDir and currently
builds AMD64 images, matching the cluster nodes. Manual builds retain the
default AMD64+ARM64 contract.