Я использую шаг оценки для конвейера, использующего класс Environment, для того, чтобы иметь собственный образ Docker, так как мне нужно несколько пакетов apt-get
, чтобы иметь возможность установить конкретный пакет pip. Из журналов видно, что он полностью игнорирует, в отличие от неконвейерной версии оценщика, докерскую часть переменной среды. Очень просто, это выглядит не так:
Я работаю на 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 моего кода,Вот фрагмент моего кода:
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
Это хорошо работает, когда я использую Оценщик сам по себе, но если я вставляю этот оценщик в Конвейер, он терпит неудачу. Вот мой код для запуска его из прогона конвейера:
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.
Что означает, что он игнорирует мой FROM mcr....
оператор в классе Environment, который я связал с этим Оценщиком, и мой pip install
не выполняется.
Я что-то упустил? Есть ли обходной путь?