crowdsecurity/crowdsec · error

only one 'docker_host' parameters is required, not many

Error message

only one 'docker_host' parameters is required, not many

What it means

DSN validation in docker ConfigureByDSN: the docker_host query parameter (URL of the docker daemon socket) is repeated in the DSN. The guard demands a single value because only one daemon endpoint can be targeted.

Source

Thrown at pkg/acquisition/modules/docker/config.go:287

			followStdout, err := strconv.ParseBool(v[0])
			if err != nil {
				return fmt.Errorf("parsing 'follow_stdout' parameters: %s", err)
			}
			d.Config.FollowStdout = followStdout
			d.containerLogsOptions.ShowStdout = followStdout
		case "follow_stderr":
			if len(v) != 1 {
				return errors.New("only one 'follow_stderr' parameters is required, not many")
			}
			followStdErr, err := strconv.ParseBool(v[0])
			if err != nil {
				return fmt.Errorf("parsing 'follow_stderr' parameters: %s", err)
			}
			d.Config.FollowStdErr = followStdErr
			d.containerLogsOptions.ShowStderr = followStdErr
		case "docker_host":
			if len(v) != 1 {
				return errors.New("only one 'docker_host' parameters is required, not many")
			}
			opts = append(opts, client.WithHost(v[0]))
		}
	}

	d.Client, err = client.New(opts...)
	if err != nil {
		return err
	}

	d.backoffFactory = newDockerBackOffFactory()

	return nil
}

View on GitHub (pinned to 909b515798)

Solutions

  1. Pass docker_host=... once, e.g. docker://container?docker_host=unix:///run/podman/podman.sock
  2. For multiple daemons, define one datasource stanza per daemon instead of stacking parameters
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at pkg/acquisition/modules/docker/config.go:287 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of crowdsecurity/crowdsec@909b515798 (2026-09-06). Data as JSON: /api/errors/6321d2e98ad67d43. Report an issue: GitHub.