来自守护程序的错误响应:(config)包含本地卷名的无效字符

时间:2015-12-07 09:28:04

标签: docker haproxy

我有一个正在运行的节点服务器,可以监听3个不同的端口。 我有三个不同的url子域,指向运行/监听节点的服务器的端口80

我要做的是使用haproxy代理将来自子域的请求传递到其各自的端口。

我的节点服务器已固定为主机上公开的端口。我可以使用服务器端口上的IP地址单独打它们,这样它们似乎运行正常。

我的haproxy也将在docker容器中运行。我对haproxy完全不熟悉,尽管我对码头工人很有信心。我通过onine文章和博客编写了我的haproxy配置,但是一旦我使用以下命令启动我的docker容器:

docker run --name my-running-haproxy \
  -v ./haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro \
  haproxy:1.6.2

我收到以下错误:

  

来自守护程序的错误响应:./ haproxy.cfg包含本地卷名的无效字符,仅允许[a-zA-Z0-9] [a-zA-Z0-9 _.-]

所以我尝试通过删除配置选项进行调试,直到我有一个非常简约的配置:

haproxy.cfg

global
    maxconn 256
    debug

defaults
    mode http
    timeout connect 5000ms
    timeout client 50000ms
    timeout server 50000ms

frontend http-in
    bind *:80
    default_backend default-server

backend default-server
    server s0 127.0.0.1:3000

但我仍然得到同样的错误。

有人可以帮助我吗?

2 个答案:

答案 0 :(得分:2)

我遇到了同样的问题并通过使用配置文件的完整路径解决了这个问题。

原始

docker run --name my-running-haproxy \
  -v ./haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro \
  haproxy:1.6.2

固定

docker run --name my-running-haproxy \
  -v /usr/local/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro \
  haproxy:1.6.2

答案 1 :(得分:1)

$ docker -v
Docker version 1.11.2, build b9f10c9

使用相对路径:

  

示例:./haproxy.cfg

     

示例:./PATH/haproxy.cfg

     

示例隐藏文件:./PATH/.haproxy.cfg

  -v ./haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro

使用绝对路径:

  

示例:/haproxy.cfg

     

示例:/PATH/haproxy.cfg

     

示例隐藏文件:/PATH/.haproxy.cfg

     

示例:$PWD/haproxy.cfg

  -v /PATH/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro