我目前正在使用Docker和一个简单的Flask网站,要将图像发送到该网站。为此,我正在使用端口8080,但是从docker到主机的映射无法正常工作,因为我无法连接。有人可以向我解释我在做什么错吗?
docker-compose.yml
version: "2.3"
services:
dev:
container_name: xvision-dev
build:
context: ./
dockerfile: docker/dev.dockerfile
working_dir: /app
volumes:
- .:/app
- /path/to/images:/app/images
ports:
- "127.0.0.1:8080:8080"
- "8080"
- "8080:8080"
dev.dockerfile
FROM tensorflow/tensorflow:latest
WORKDIR /app
COPY requirements.txt ./
RUN pip install -r requirements.txt
RUN apt update && apt install -y python-tk
EXPOSE 8080
CMD ["python", "-u", "app.py"]
app.py
@APP.route('/test', methods=['GET'])
def hello():
return "Hello world!"
def main():
"""Start the script"""
APP.json_encoder = Float32Encoder
APP.run(host="127.0.0.1", port=os.getenv('PORT', 8080))
我从docker-compose up
开始我的docker,这给出了输出:Running on http://127.0.0.1:8080/ (Press CTRL+C to quit)
。
但是当我对127.0.0.1:8080/test进行获取请求时,我得到了没有响应。
我也尝试了docker-compose run --service-port dev
,因为有人在网上建议,但这表明没有服务开发者。
有人可以帮我解决我做错的事情吗?
答案 0 :(得分:1)
使用:
APP.run(host="0.0.0.0", port=os.getenv('PORT', 8080))
仅使用:
ports:
- "8080:8080"
足够