设置
我有一个物理机器(PM)运行在Debian /Linux11(斗牛眼)上,一个远程虚拟机(VM)运行在同一个网络上的AlmaLinux 8.7 (Stone Smilodon)上。
目标
我希望在VM上运行一个带有Prefect服务器的容器,并通过请求http://<VM_ip>:4200
从网络上的任何地方访问Prefect UI。
这将允许本地开发新的流,然后以简单的方式运行它们。(对于从气流中使用docker-compose.yaml
的人,我想复制这种行为)
问题
在我的PM上,我可以直接运行Prefect (prefect orion start
),也可以在容器(docker run --network host -it prefecthq/prefect:2-latest prefect orion start
)中运行。在这些情况下,我可以看到相关流的执行情况等等。
当我试图将我的Prefect服务器重新定位到我的VM上时,问题就出现了。
无论我尝试什么,当我试图在我的PM上打开Prefect UI时,我最终都会收到一条Can't connect to Orion API at http://0.0.0.0:4200/api. Check that it's accessible from your machine.
错误消息。除此之外,Prefect似乎在容器中正确运行(例如,我可以使用build
、apply
和run
流部署)
我试过什么
我尝试过的主要内容是以下命令:
docker run \
--name prefect \
--env PREFECT_ORION_API_HOST=0.0.0.0 \
-v ~/containers/prefect/deployments:/deployments \
-p 4200:4200 \
-d prefecthq/prefect:2-latest \
prefect orion start
据我所知,它应该与PM上的容器部署相同,同时公开端口4200
以授权来自外部的访问。
我找过的地方
我试着在完全语篇上问我的问题,但是,虽然我已经得到了答案,但他们似乎都没有做到这一点。答案之一是查看完善码头组合方法,但这也以同样的方式失败。
这里的错误在哪里?有可能吗?感谢您的阅读、评论和回答!
发布于 2022-11-17 16:35:28
你可以这样做:
docker run -p 4200:4200 prefecthq/prefect:2-latest prefect orion start --host 0.0.0.0
prefect config set PREFECT_API_URL = "http://0.0.0.0:4200/api"
https://stackoverflow.com/questions/74478519
复制相似问题