mRc*_*ing 3 flask docker docker-compose
另一个码头工人/烧瓶问题。我在从另一个容器连接到我的 Flask 应用程序时遇到问题docker-compose。
我的dockerfile设置了一个烧瓶应用程序,如:
COPY ./ /app/
WORKDIR /app
RUN find -name "*.pyc" -delete && \
pip3 install -r requirements.txt
EXPOSE 5000
CMD ["python3", "app.py"]
Run Code Online (Sandbox Code Playgroud)
该应用程序在 上运行0.0.0.0:5000,docker-compose.yml如下所示:
version: '3'
services:
app:
build: .
ports:
- "5000:5000"
test:
image: alpine:3.8
Run Code Online (Sandbox Code Playgroud)
现在docker-compose up我可以curl从主机上像:
curl -i http://0.0.0.0:5000
...
200 - ok
Run Code Online (Sandbox Code Playgroud)
但是如果我跳进测试容器,我会得到一个 404:
docker-compose run test sh
# apk --update add curl
# curl -i http://app:5000
...
404 - not found
Run Code Online (Sandbox Code Playgroud)
实际上这两个容器应该可以看到对方,事实上,当我查看日志时,app我可以看到test进来的请求。但是他们得到了 404 的答复。
我在这里做错了什么?
顺便说一句,我这里有一个最小的例子:https : //github.com/mRcSchwering/flask_docker-compose
这是因为你的配置
app.config['SERVER_NAME'] = '0.0.0.0:5000'
Run Code Online (Sandbox Code Playgroud)
您的 Flask 认为它的名字是0.0.0.0:5000,因此不会响应其他人。
要验证,请curl -H Host:0.0.0.0:5000 -i http://app:5000从测试中调用。
您可以删除此配置并运行服务器
app.run(host='0.0.0.0')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1045 次 |
| 最近记录: |