docker compose网络不服务主机的请求



[docker-compose question]

你好!我已经被困在这个问题上一段时间了,所以希望我们能一起调试。

我使用docker compose来启动三个独立的服务。一切都是伟大的。应用健康检查通过,服务相互联系,但我似乎无法从主机上curl我的应用。

我为app.ports尝试了以下值:

"127.0.0.1:3000:3000"3000:3000"0.0.0.0:3000:3000">

我也试过用"host"但这似乎也不起作用,我不喜欢它,因为很明显Mac不支持,我的本地开发环境是Macosx。prod服务器是ubuntu。

我已经尝试明确定义默认的桥接网络:

networks:
default:
driver: bridge

这是我的docker-compose.yml

version: "2.4"
services:
rabbitmq:
image: rabbitmq
volumes:
- ${ML_FILE_PATH}/taskqueue/config/:/etc/rabbitmq/
environment:
LC_ALL: "C.UTF-8"
LANG: "C.UTF-8"
celery-worker:
image: ${ML_IMAGE_NAME}
entrypoint: "celery --broker='amqp://<user>:<password>@rabbitmq:5672//' -A taskqueue.celeryapp worker --uid 1111"
runtime: ${RUNTIME}  ## either "runc" if running locally on debug mode or "nvidia" on production with multi processors
volumes:
- ${ML_FILE_PATH}:/host
depends_on:
- rabbitmq
- app
environment:
LC_ALL: "C.UTF-8"
LANG: "C.UTF-8"
MPLCONFIGDIR: /host/tmp
volumes:
- ${ML_FILE_PATH}:/host
celery-beat:
image: ${ML_IMAGE_NAME}
entrypoint: "celery --broker='amqp://<user>:<password>@rabbitmq:5672//' -A taskqueue.celeryapp beat --uid 1111"
runtime: ${RUNTIME}  ## either "runc" if running locally on debug mode or "nvidia" on production with multi processors
depends_on:
- rabbitmq
- app
environment:
LC_ALL: "C.UTF-8"
LANG: "C.UTF-8"
MPLCONFIGDIR: /host/tmp
volumes:
- ${ML_FILE_PATH}:/host
app:
build: .
entrypoint: ${ML_ENTRYPOINT}  # just starts a flask app
image: ${ML_IMAGE_NAME}
ports:
- "3000:3000"
expose:
- "3000"
volumes:
- ${ML_FILE_PATH}:/host
restart: always
runtime: ${RUNTIME}
healthcheck:
test: ["CMD", "curl", "http:/localhost:3000/?requestType=health-check"]
start_period: 30s
interval: 30s
timeout: 5s
environment:
SCHEDULER: "off"
TZ: "UTC"
LC_ALL: "C.UTF-8"
LANG: "C.UTF-8"

我可以像预期的那样从容器内访问服务。

我不知道我错过了什么。非常感谢你的帮助!

我不确定,但我认为你不能路由流量从主机到mac osx上的容器

https://docs.docker.com/desktop/mac/networking/

这最终与docker-compose无关。

我的flask应用程序在127.0.0.1上启动。我需要以一种外部可见服务器。

我只需要在我的开始脚本中添加——host=0.0.0.0。

相关内容

  • 没有找到相关文章

最新更新