как говорится в вопросе. Вот моя ситуация.
Папка моего проекта:
PROJ
|____docker-compose.yml
|____servDir/
|____Dockerfile
|____server.py
В docker-compose.yml:
service1:
image: img1:v0.1
container_name: cont1
build: ./servDir/.
ports:
- "5001:5002"
server.py:
from flask import Flask, request
import json
app = Flask(__name__)
PORT = 5001
@app.route("/greetings/")
def hello():
return "Hello World!"
if __name__ == '__main__':
app.run(host="0.0.0.0", port=int(PORT), debug=True)
Когда я запускаю docker-compose up
и перехожу на http://localhost:5001/greetings/
, я получаю ERR_CONNECTION_REFUSED.
Вместо этого, если я установлю ports как 5001:5001
, я смогу получить содержимое страницы.
Почему? Должен ли я установить их всегда равными, чтобы достичь контейнера браузером?
Я думал, что конфигурация портов была HOST: CONTAINER, и этот браузер был бы HOST-сервисом.
ОБНОВЛЕНИЕ:
Dockerfile:
FROM python:3
WORKDIR /home/python/app/
COPY . /home/python/app/
RUN chmod a+x *.py
CMD ["python", "./server.py"]