Der Versuch, eine Verbindung zu einer Docker-Flask-App herzustellen, schlägt mit dem Fehler 104 "Verbindung durch Peer zurückgesetzt" anhand dieses minimalen Beispiels fehl:
app.py:
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
if __name__ == "__main__":
app.run()
Dockerfile:
FROM python:alpine
RUN pip install flask
COPY . /src/
EXPOSE 5000
ENTRYPOINT ["python", "/src/app.py"]
docker-compose.yml:
…
test:
build: .
ports:
- 127.0.0.1:5000:5000
Die Flaschen-App scheint wie erwartet zu laufen:
$ docker logs test
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
Der Versuch, eine Verbindung von außen herzustellen, schlägt fehl:
$ http http://127.0.0.1:5000/
http: error: ConnectionError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer')) while doing GET request to URL: http://127.0.0.1:5000/
Irgendwelche Ideen, warum ich "Hallo Welt!" Nicht sehen kann. Hier?
gunicorn --bind 0.0.0.0:5000 app:app
flask run
, verwenden Sie--host=0.0.0.0
. Oder in der Docker-Datei:CMD ["flask", "run", "--host=0.0.0.0"]