2017-09-17 1 views
0

dies über ein einfaches Kolben-restplus Micro mit einem echo Endpunkt, die here die lokal ausgeführt werden standardmäßig auf Port 5000 zu finden sind:flaschen restplus Micro nicht erreichbar auf Andockfensters Behältern

cd $src_folder 
python app.py 

enter image description here

aber wenn sie in einem docker Behälter mit einem einfachen Dockerfile ...

RUN pip install --no-cache-dir -r requirements.txt 
CMD [ "python", "./app.py" ] 
läuft

... mit dem richtigen Port-Mapping/Belichtungs, ist es aus irgendeinem Grund nicht erreichbar:

docker run -d -h $HOST --name $CONTAINER \ 
--publish $SERVER_PORT:$CONTAINER_PORT $DOCKER_HUB_IMG:$IMAGE_VERSION 

... auch wenn die Container Protokolle zu sagen, dass es korrekt gestartet hat:

(venv) .../flaskexample$ docker logs flaskexample 
2017-09-17 18:23:12,505 - werkzeug - INFO - * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit) 
2017-09-17 18:23:12,506 - werkzeug - INFO - * Restarting with stat 
2017-09-17 18:23:13,016 - werkzeug - WARNING - * Debugger is active! 
2017-09-17 18:23:13,021 - werkzeug - INFO - * Debugger PIN: 246-320-471 
(venv) .../flaskexample$ 

... und auch in docker ps Suche ok:

(venv) .../flaskexample$ docker ps 
CONTAINER ID  IMAGE       COMMAND     CREATED    STATUS    PORTS                 NAMES 
9d90da7ae192  kakicode/flaskexample:latest "python ./app.py"  4 minutes ago  Up 4 minutes  0.0.0.0:5000->5000/tcp             flaskexample 

..aber ich aus irgendeinem Grund erhalte:

enter image description here

... und ich bin mit Ideen aus ... müssen sagen, dass ich nicht die SERVER_NAME in Kolben-restplus Konfiguration an Bereitstellung, da es keinen Unterschied macht, immer noch das gleiche bekommen Problem, und auch jeder andere Container, der Port-Mapping/Exposure benötigt, funktioniert in meinem Docker-Daemon einwandfrei. Ich führe diese Experimente in Ubuntu 14.04.5.

... hat jemand etwas ähnliches mit Kolben-Restplus da draußen erlebt?

Ihnen allen im Voraus zu danken

+0

mit dem, was url Sie nach 127.0.0.1:5000 konfiguriert haben – Akash

+0

... gibt es eine Prahlerei UI in 'http: // localhost: 5000/api /' und einem Endpunkt 'http: // localhost: 5000/api/status/echo' –

Antwort

2

Ihr Problem ist, dass Sie so etwas wie unten in Ihrem app.py

app.run(debug=True, port=5000) 

oder nur

app.run() 

Was diese Streams tut verwendet haben würde, ist standardmäßig auf 127.0.0.1. Damit Port-Mapping funktionieren kann, muss es auf alle Schnittstellen im Container warten. So sollten Sie

app.run(debug=True, port=5000, host="0.0.0.0") 
+0

Spot auf! Ich benutzte 'app.run (debug = Configuration.get (" FLASK_DEBUG "))' Vielen Dank @ tarun-lalwani !!! –

Verwandte Themen