2017-02-07 1 views
1

localhost to view pactsSo konfigurieren Docker und Postgres Pakt Broker

ich Gebräu installiert haben verwenden Version von Postgres und Docker. Befolgen Sie die Schritte in der Verknüpfung https://github.com/DiUS/pact_broker-docker/blob/master/POSTGRESQL.md, um einen dockerisierten Pact-Broker und Postgres zu erstellen.

Wenn ich den ersten Befehl ausführen, bekam Behälter mit Fehler erstellt:

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 

Antwort:

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... 

Irgendwie gelang es, den ersten Schritt zu umgehen, indem die Bindevolumen Option Entfernen:

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

Erfolgreich 2 und 3 Schritte in der angegebenen Verbindung: (2) Conn ect an den Behälter und führt psql über: (3) über den PactBroker Container Start:

Danach versuchte json mit dem unter Befehl zu locken:

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

bekommt die folgende Antwort ...

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 

nicht sicher, ob sein Erfolg oder Misserfolg als die erste Zeile zu sagen ... ‚Könnte Host nicht lösen: Anwendung‘ und ‚Closing connection‘

Und als ich versucht habe, den localhost zu sehen, erscheint er leer. Screenshot beigefügt. Auf der Suche nach Hilfe so früh wie möglich! Vielen Dank im Voraus ...

+0

Dies ist eindeutig keine Pakt-Frage, sondern eine Docker-Frage, speziell um Postgres SQL-Server. Ich werde diese Frage als nicht relevant melden, es sei denn, Sie möchten die Frage in etwas Paktspezifisches ändern. –

+1

Danke! Editiert und hinzugefügt docker/Postgres –

+0

Danke. Ich würde die Frage wahrscheinlich ein wenig umschreiben, wenn Sie ein anderes Publikum bitten, damit sie nicht mit dem Pakt verwirrt werden. –

Antwort

0

Es scheint, dass Sie versuchen, ein Volume auf Ihrem Host-Rechner (/var/lib/postgresql/data) zu mounten, das nicht existiert.

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. 

Die Nachricht besagt dies deutlich. Sie sollten read more über Docker Volumes, aber ich würde vorschlagen, dass Sie ein anderes Verzeichnis mounten, wenn dies für die Entwicklung auf Ihrem Mac ist.

Zweitens, können Sie sehen, dass Sie auf dem Upload einen „Nicht unterstützten Medientyp“ sind immer so ist es auf jeden Fall versagt hat:

HTTP/1.1 415 Unsupported Media Type 

Es scheint, als ob der Content-Type ist nicht richtig eingestellt ist, Sie können dies in der Ausgabe sehen:

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

Bitte überprüfen Sie, dass die Datei im Pfad vorhanden ist tatsächlich /HelloWorldConsumer-HelloWorldProvider.json, dass es eine gültige JSON-Datei ist, und dass Ihre Header Inhaltstyp korrekt (es scheint zu sein) formatiert.

+0

Danke Matthew für deine Antwort!Wird über docker Volume lesen, korrigieren und den Inhaltstyp überprüfen. Werde zurückkommen, wenn ich mit einer richtigen Frage nicht durchkomme. –

+0

Danke Mathew! Es funktionierte ... erstellt Datencluster postgresql mit initdb Befehl. mkdir ~/.postgres und initdb ~/.postgres So sieht mein Befehl aus ... docker run --name pactbroker-db -e POSTGRES_PASSWORD = DasPostgresPassword -e POSTGRES_USER = admin -e PGDATA =/var/lib/postgresql/data/pgdata -v ~/.postgres:/var/lib/postgresql/Daten -d postgres. Auch für das zweite Problem - nicht unterstützter Datentyp .. es sind nur falsch formatierte Anführungszeichen - änderte dieses "Content-Type: text/html" in "Content-Type: text/html". Und es hat wie ein Zauber funktioniert. –

+0

Großartig zu hören @JananiSampathKumar! Können Sie bitte meine Antwort als richtig markieren? –

Verwandte Themen