如何从本地部署的AzureML容器公开端口?

时间:2019-08-21 17:00:35

标签: azure-machine-learning-service

我希望能够在VSCode中调试正在运行的$('.fa-info-circle#'+objectName).attr("title", response.name);脚本。此代码使用自己的docker run命令在通过$('.fa-info-circle#'+objectName).attr("data-original-title", response.name);创建的容器中运行。这是本地部署,因此我正在使用如下所示的部署配置:

entry_script.py

我当时正在考虑使用az ml deploy来设置VSCode服务器,但是除了端点自身的32267端口之外,我还需要公开/映射5678端口。因此,我不清楚如何映射其他暴露端口(通常使用{ "computeType": "LOCAL", "port": 32267 } 命令中的ptvsd-p标志)。

当然,我可以在-P配置中docker run,但是实际上并不能将其映射到我可以在VSCode中连接/连接的主机端口。

我试图确定运行命令并可能对其进行了修改,但我找不到该运行命令是什么。如果我知道如何运行通过AzureML本地部署创建的映像,则可以修改这些标志。

如果通过EXPOSE或通过首选的部署配置提供了更多受支持的方法,那么最终感觉太hacky了。

这是我在entry_script开头使用的用于通过extra_dockerfile_steps启用附件的代码:

az ml deploy

2 个答案:

答案 0 :(得分:1)

不幸的是,az ml deploy local不支持绑定除托管计分服务器的端口以外的任何其他端口。

答案 1 :(得分:1)

构建第二个docker文件:

yaml

来自文件夹中的cmd行:

FROM [YOUR_GENERATED_IMAGE]
EXPOSE [YOUR_PORT]

您可能需要根据端口和环境变量等添加其他运行选项。

如何获取生成的图像名称:

docker build -t my_new_image .
docker run -p <port>:<port>  my_new_image