docker-library / docker-library/haproxy

Example run commands in Dockerhub readme don't work

Open
#142 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

question
Dominant language
Shell
Stars
383
Forks
162
PR merge metrics
No merged PRs in 30d

Description

Summary: The example run commands in the Dockerhub readme don't work, but they can be fixed by adding or discussing the --privileged or --ulimit flags.

The Dockerhub readme suggests the following docker run commands:

docker run -d --name my-running-haproxy --sysctl net.ipv4.ip_unprivileged_port_start=0 my-haproxy
# Or:
docker run -d --name my-running-haproxy \
  -v /path/to/etc/haproxy:/usr/local/etc/haproxy:ro --sysctl net.ipv4.ip_unprivileged_port_start=0 haproxy:2.3

When running either of these commands, HAProxy crashes with the following error message:

[ALERT] 040/170647 (8) : [haproxy.main()] Cannot raise FD limit to 8030, limit is 1024.

Running Docker in privileged mode lifts the 1024 limit on file descriptors. So that's one possible way to get past this error:

docker run -d --name my-running-haproxy --sysctl net.ipv4.ip_unprivileged_port_start=0 --privileged my-haproxy
# Or:
docker run -d --name my-running-haproxy \
  -v /path/to/etc/haproxy:/usr/local/etc/haproxy:ro --sysctl net.ipv4.ip_unprivileged_port_start=0 --privileged haproxy:2.3

Perhaps the readme should be updated to either:

  1. discuss the --privileged and --ulimit flags, their pros, their cons, and alternatives; or
  2. simply add --privileged to the example docker run commands.

Option 1 is probably better so as not to encourage use of --privileged without knowledge of the consequences.

I tested this against haproxy:latest and haproxy:alpine, which as of today map to HAProxy 2.3.5.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the Docker Hub README sections containing the two docker run examples and review the reported HAProxy file-descriptor error. Update the documentation to discuss --privileged and --ulimit, including their trade-offs and alternatives, or otherwise make the commands work as described. Done means the examples no longer fail without explanation and the consequences of the recommended flags are clear.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker
Domain
devops, documentation
Issue type
Documentation
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.