A tentativa de conectar-se a um aplicativo Flask encaixado falha com o erro 104, 'Conexão redefinida pelo par' usando este exemplo mínimo:
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
O aplicativo Flask parece estar executando como esperado:
$ docker logs test
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
A tentativa de conectar-se de fora falha:
$ 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/
Alguma idéia, por que não consigo ver "Olá, mundo!" aqui?
gunicorn --bind 0.0.0.0:5000 app:app
flask run
, use--host=0.0.0.0
. Ou no Dockerfile:CMD ["flask", "run", "--host=0.0.0.0"]