【发布时间】:2020-02-06 03:28:12
【问题描述】:
我正在使用 Environment 类对管道使用估计器步骤,以便拥有自定义 Docker 映像,因为我需要一些 apt-get 包才能安装特定的 pip 包。从日志中可以看出,它完全忽略了环境变量的 docker 部分,这与估算器的非管道版本不同。很简单,这似乎坏了:
我在 SDK v1.0.65 上运行,我的 dockerfile 被完全忽略,我正在使用
FROM mcr.microsoft.com/azureml/base:latest\nRUN apt-get update && apt-get -y install freetds-dev freetds-bin vim gcc
在我的代码的 base_dockerfile 属性中。 这是我的代码的 sn-p:
from azureml.core import Environment
from azureml.core.environment import CondaDependencies
conda_dep = CondaDependencies()
conda_dep.add_pip_package('pymssql==2.1.1')
myenv = Environment(name="mssqlenv")
myenv.python.conda_dependencies=conda_dep
myenv.docker.enabled = True
myenv.docker.base_dockerfile = 'FROM mcr.microsoft.com/azureml/base:latest\nRUN apt-get update && apt-get -y install freetds-dev freetds-bin vim gcc'
myenv.docker.base_image = None
当我单独使用 Estimator 时,这很有效,但如果我将这个 Estimator 插入到 Pipeline 中,它会失败。这是我从管道运行中启动它的代码:
from azureml.pipeline.steps import EstimatorStep
sql_est_step = EstimatorStep(name="sql_step",
estimator=est,
estimator_entry_script_arguments=[],
runconfig_pipeline_params=None,
compute_target=cpu_cluster)
from azureml.pipeline.core import Pipeline
from azureml.core import Experiment
pipeline = Pipeline(workspace=ws, steps=[sql_est_step])
pipeline_run = exp.submit(pipeline)
启动时,容器构建服务的日志显示:
FROM continuumio/miniconda3:4.4.10... etc.
这表明它忽略了我在与此 Estimator 关联的 Environment 类中的 FROM mcr.... 语句,并且我的 pip install 失败。
我错过了什么吗?有解决办法吗?
【问题讨论】:
标签: azure-machine-learning-service