Skip to content
Fully customisable HAProxy load balancer with HTTP/2 and ALPN support. Built on CentOS-7.
Shell Dockerfile
Branch: master
Clone or download
Pull request Compare This branch is 8 commits ahead of million12:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

HAProxy Load Balancer

Build Status GitHub Open Issues
Stars Fork

Docker build

Felling like supporting me in my projects use donate button. Thank You!

HAProxy docker container million12/haproxy with ALPN and HTTP/2 support.


Please specify tag when deploying for specific version.



  • Support for HTTP/2 with ALPN
  • CentOS 7 based
  • Ability to provide any arguments to haproxy process
    Any extra parameters provided to docker run will be passed directly to haproxy command.
    For example, if you run docker run [run options] million12/haproxy -n 1000 you pass -n 1000 to haproxy daemon.
  • Pretty lightweight, only ~100M (with OpenSSL and HAProxy compiled from source).
  • Default haproxy.cfg provided for demonstration purposes. You can easily mount your own or point to different location using HAPROXY_CONFIG env.
  • Auto restart when config changes
    This container comes with inotify to monitor changes in HAProxy config and reload HAProxy daemon. The reload is done in a way that no connection is lost.

ENV variables

Variable Default Settings Notes
HAPROXY_CONFIG /etc/haproxy/haproxy.cfg If you mount your config to different location, simply edit it.
HAPROXY_PORTS 80,443 Comma separated ports
HAPROXY_ADDITIONAL_CONFIG Empty List of file that inotify should monitor for changes divided by space. Example below. Space separated
HAPROXY_PRE_RESTART_CMD Empty Command to execute before restarting haproxy
HAPROXY_POST_RESTART_CMD Empty Command to execute after successfully restarting haproxy



docker run -ti \
  -p 80:80 \
  -p 443:443 \

Mount custom config , override some options

docker run -d \
  -p 80:80 \
  -v /my-haproxy.cfg:/etc/haproxy/haproxy.cfg \
  million12/haproxy \
  -n 10000

Note: in this case config is mounted to its default location, so you don't need to modify HAPROXY_CONFIG variable.

Monitor additional config files

docker run -d \
  -p 80:80 \
  -e HAPROXY_ADDITIONAL_CONFIG='/etc/haproxy/custom1 /etc/haproxy/custom2' \

Check version and build options

docker run -ti million12/haproxy -vv


The default URL for stats is http://CONTAINER_IP/admin?stats with username:password ser to admin:admin.


Author: Marcin ryzy Ryzycki (
Author: Przemyslaw Ozgo (

You can’t perform that action at this time.