如何解决Dockerized Flask 不能与 dockerized neo4j 一起使用
我试图在一个容器中运行 neo4j,在另一个容器中运行一个 Flask 应用程序。我有一个 docker.compose.yml
像这样:
version: '3'
services:
app1:
container_name: app1
image: python:3.7.3-slim
build: ./APP1/
volumes:
- ./APP1/:/usr/src/app/
environment:
PORT: 5000
FLASK_DEBUG: 1
ports:
- 5000:5000
tty: true
neo4:
container_name: neo4j
image: neo4j:3.5
environment:
- NEO4J_dbms_memory_pagecache_size=2G
- dbms_connector_bolt_tls__level=OPTIONAL
- NEO4J_dbms_memory_heap_max__size=3500M
- NEO4J_AUTH=user/pwd
volumes:
- $HOME/neo4j/data:/data
- $HOME/neo4j/logs:/logs
- $HOME/neo4j/import:/import
- $HOME/neo4j/plugins:/plugins
ports:
- 7474:7474
- 7687:7687
我的app.py
:
app = Flask(__name__)
if __name__ == '__main__':
app.run(host="0.0.0.0",port=5000,debug=True
)
还有 Dockerfile
的 APP1
:
FROM python:3.7.3-slim
RUN mkdir /usr/src/app/
COPY . /usr/src/app/
WORKDIR /usr/src/app/
EXPOSE 5000
RUN pip install --upgrade pip
RUN pip install -r requirements.txt
ENTRYPOINT ["python3","app.py"]
然后我使用 docker-compose up
来执行。当我通过浏览器访问 neo4j 时,我可以正常访问(http://localhost:7474/),但对于 Flask 应用程序,我无权访问(http://0.0.0.0:5000/)。我的配置哪里出错了?
解决方法
http://0.0.0.0:5000
并不意味着 localhost
,而是所有网络接口。所以你无法联系到 localhost
。
我解决了它,这实际上是一个愚蠢的错误,但我猜可能会发生在其他人身上......
在 docker-compose.yml
中:
build: ./APP1/
需要用引号引起来,所以:
build: './APP1/'
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。