The container image is Debian 13 with the current HAProxy, and starts Keepalived again on a volume from an older image.
The image, since 1.97.0 (which was tagged but never released, so this is the first release to carry it):
- Debian 13 (trixie) as the base, with Keepalived 2.3.
- HAProxy 3.4 from haproxy.debian.net, the Debian HAProxy maintainers' own backports, instead of the LTS a Debian release freezes at. The image follows that branch's point releases.
- The image stays current. It is rebuilt without cache every week, so Debian security updates and HAProxy point releases reach
:latestand the release tags without a new version here, and a weekly check opens a pull request when a new HAProxy branch or acme.sh version appears. - acme.sh 3.1.6.
Fixed in 1.97.1 (#6): upgrading the container from 1.96.0 left Keepalived unable to start, with Unable to read build config options file, so the shared IP was no longer assigned. Debian 13 builds Keepalived reproducibly, which moves its build options out of the binary into a file under /etc/keepalived, and Docker seeds that volume from the image only when the volume is created empty, so every upgraded node was missing the file. The image now keeps its own copy and the entrypoint puts it in place on every start. Fresh installs, host installs and the Proxmox container never had the problem.
Upgrading from 1.96.x: nothing to do. Pull the image and restart; if you copied keepalived.config-opts into the volume by hand as a workaround, it is overwritten on start and can stay. If a node upgraded to 1.97.0 lost its VIP, this release gives it back.
Packages are attached below; the container image is at ghcr.io/avandeputte/haproxy-manager:1.97.1.