1
0
Fork 0
docker-easy-haproxy/docs/container-labels.md
Claude aee9645b43
Enhance documentation with Docusaurus features and fix inaccuracies
Verified against source code and enhanced with Docusaurus markdown features:

Documentation Accuracy Fixes:
- Fixed acme.md: Added "letsencrypt" as valid AUTOCONFIG value (was incorrectly shown as "-")
- Added reference to ACME docs from environment-variable.md
- Verified all features against actual implementation in /src

Docusaurus Enhancements Added:
- Admonitions (:::note, :::tip, :::warning, :::danger, :::info) for important callouts
- Code block titles for all bash/yaml examples (e.g., title="Install EasyHAProxy")
- Better structured warnings and notes for limitations
- Improved formatting and readability throughout

Files Enhanced:
- kubernetes.md: Added info boxes, warnings, code titles
- docker.md: Added limitation warnings, code titles
- swarm.md: Added advantage tips, limitation warnings
- acme.md: Fixed Let's Encrypt autoconfig, enhanced requirements with admonitions
- ssl.md: Added code block titles for all examples
- static.md: Added live reload tip, SSL certificate note
- container-labels.md: Added definition explanation, code titles
- limitations.md: Restructured with clear warnings and explanations
- helm.md: Added warnings, code titles
- microk8s.md: Added ingress controller warning, code titles
- volumes.md: Added info box about volume purposes
- other.md: Added code block titles
- environment-variable.md: Added ACME reference note

All changes verified against actual Python source code implementation.
2025-11-09 23:50:44 +00:00

6.6 KiB

sidebar_position
11

Container Labels

Container (Docker or Swarm) labels

Tag Description Default Example
easyhaproxy.[definition].host Host(s) HAProxy is listening. More than one host use comma as delimiter required somehost.com OR host1.com,host2.com
easyhaproxy.[definition].mode (Optional) Is this http or tcp mode in HAProxy. http http or tcp
easyhaproxy.[definition].port (Optional) Port HAProxy will listen for the host. 80 3000
easyhaproxy.[definition].localport (Optional) Port container is listening. 80 8080
easyhaproxy.[definition].redirect (Optional) JSON containing key/value pair from host/to URL redirect. empty {"foo.com":"https://bla.com", "bar.com":"https://bar.org"}
easyhaproxy.[definition].sslcert (Optional) Cert PEM Base64 encoded. Do not use this if certbot is enabled. empty base64 cert + key
easyhaproxy.[definition].ssl (Optional) If true you need to provide certificate as a file. See below. Do not use with sslcert. false true or false
easyhaproxy.[definition].ssl-check (Optional) ssl, enable health check via SSL in mode tcp empty ssl
easyhaproxy.[definition].certbot (Optional) Generate certificate with certbot. Do not use with sslcert parameter. More info here. false true OR false
easyhaproxy.[definition].redirect_ssl (Optional) Redirect all requests to https false true OR false
easyhaproxy.[definition].clone_to_ssl (Optional) It copies the configuration to HTTPS(443) and disable SSL from the current config. *Do not use this with ssl or certbot parameters false true OR false
easyhaproxy.[definition].balance (Optional) HAProxy balance algorithm. See HAProxy documentation roundrobin roundrobin, source, uri, url_param, hdr, rdp-cookie, leastconn, first, static-rr, rdp-cookie, hdr_dom, map-based

:::info Understanding Definitions The [definition] is a string identifier that groups related configuration labels together. Different definitions create separate HAProxy configurations.

A single container can have multiple definitions to expose different services or ports. :::

Configuations

Single Definition

docker run \
    --label easyhaproxy.webapi.port=80\
    --label easyhaproxy.webapi.host=byjg.com.br \
    ....

Multiple Definitions on the same container

docker run \
    --label easyhaproxy.express.port=80 \
    --label easyhaproxy.express.localport=3000 \
    --label easyhaproxy.express.host=express.byjg.com.br \

    --label easyhaproxy.admin.port=80 \
    --label easyhaproxy.admin.localport=3001 \
    --label easyhaproxy.admin.host=admin.byjg.com.br \
    .... \
    some/myimage

Multiple hosts on the same container

docker run \
    --label easyhaproxy.express.port=80 \
    --label easyhaproxy.express.localport=3000 \
    --label easyhaproxy.express.host=express.byjg.com.br,admin.byjg.com.br \
    .... \
    some/myimage

If you are using docker-compose you can use this way:

version: "3"

services:
  mycontainer:
    image: some/myimage
    labels:
      easyhaproxy.express.port: 80
      easyhaproxy.express.localport: 3000
      easyhaproxy.express.host: >-
        express.byjg.com.br,
        admin.byjg.com.br

TCP Mode

Set easyhaproxy.[definition].mode=tcp if your application uses TCP protocol instead of HTTP.

docker run \
    --label easyhaproxy.example.mode=tcp \
    --label easyhaproxy.example.port=3306
    --label easyhaproxy.example.localport=3306
    .... \
    some/tcp-service

Redirect Domains

docker run \
    --label easyhaproxy.[definition].redirect='{"www.byjg.com.br":"http://byjg.com.br","byjg.com":"http://byjg.com.br"}'

Open source ByJG