如何configurationdocker和postgres使用协议代理

本地主机查看协议

我已经安装了postgres和docker的brew版本。 按照链接https://github.com/DiUS/pact_broker-docker/blob/master/POSTGRESQL.md中的步骤创build一个dockerised协议代理和postgres。

当我运行第一个命令,容器被创build错误:

docker run --name pactbroker-db -e POSTGRES_PASSWORD=ThePostgresPassword -e POSTGRES_USER=admin -e PGDATA=/var/lib/postgresql/data/pgdata -v /var/lib/postgresql/data:/var/lib/postgresql/data -d postgres 

响应:

  b8a2007e5dac9554e0ac615147d74467ceb6043dba027a4a21388721cee8f34c docker: Error response from daemon: Mounts denied: The path /var/lib/postgresql/data is not shared from OS X and is not known to Docker. You can configure shared paths from Docker -> Preferences... -> File Sharing... 

不知何故设法绕过第一步,通过删除绑定卷选项:

 docker run --name pactbroker-db -e POSTGRES_PASSWORD=ThePostgresPassword -e POSTGRES_USER=admin -e PGDATA=/var/lib/postgresql/data/pgdata -d postgres 

(2)连接到容器并执行psql:(3)通过以下命令启动PactBroker容器:

在这之后,试着使用下面的命令来调整json:

  curl -v -XPUT -H “Content-Type: application/json” -d @/HelloWorldConsumer-HelloWorldProvider.json http://localhost/pacts/provider/HelloWorldProvider/consumer/HelloWorldConsumer/version/1.0 

获取以下回复…

 Could not resolve host: application * Closing connection 0 curl: (6) Could not resolve host: application * Trying ::1... * connect to ::1 port 80 failed: Connection refused * Trying 127.0.0.1... * Connected to localhost (127.0.0.1) port 80 (#1) > PUT /pacts/provider/HelloWorldProvider/consumer/HelloWorldConsumer/version/1.0 HTTP/1.1 > Host: localhost > User-Agent: curl/7.49.1 > Accept: */* > Content-Length: 756 > Content-Type: application/x-www-form-urlencoded > * upload completely sent off: 756 out of 756 bytes < HTTP/1.1 415 Unsupported Media Type < Content-Type: application/json;charset=utf-8 < Content-Length: 0 < Connection: keep-alive < Status: 415 Unsupported Media Type < Date: Tue, 07 Feb 2017 17:08:40 GMT < Server: Webmachine-Ruby/1.4.0 Rack/1.2 < X-Powered-By: Phusion Passenger 5.0.15 < * Connection #1 to host localhost left intact 

不知道是否成功或失败作为第一行说…“无法parsing主机:应用程序”和“closures连接”

而当我试图查看本地主机,它显示为空白。 附上截图。 尽快寻求帮助! 提前致谢…

看来你正试图在你的主机上挂载一个不存在的卷( /var/lib/postgresql/data )。

 docker: Error response from daemon: Mounts denied: The path /var/lib/postgresql/data is not shared from OS X and is not known to Docker. 

消息明确指出这一点。 你应该阅读更多有关docker卷,但我build议你挂载另一个目录,如果这是为了在Mac上进行开发。

其次,你可以看到你上传的“不受支持的媒体types”,所以它肯定是失败的:

 HTTP/1.1 415 Unsupported Media Type 

看起来好像内容types没有正确设置,你可以看到这在输出:

 Content-Type: application/x-www-form-urlencoded 

请检查该文件是否实际存在于path/HelloWorldConsumer-HelloWorldProvider.json ,它是一个有效的JSON文件,并且您的内容types标题格式正确(看起来是)。