Azure ML 环境的自定义 Docker 文件包含 COPY 语句错误,COPY 失败:/path no such file or directory

Giu*_*olo 6 python azure docker dockerfile azureml

我正在尝试使用 Python 脚本向 Azure ML 提交实验。

正在初始化的环境使用自定义 Dockerfile。

env = Environment(name="test")
env.docker.base_image = None
env.docker.base_dockerfile = './Docker/Dockerfile'
env.docker.enabled = True
Run Code Online (Sandbox Code Playgroud)

然而 DockerFile 需要一些COPY语句,但这些语句失败如下:

Step 9/23 : COPY requirements-azure.txt /tmp/requirements-azure.txt
COPY failed: stat /var/lib/docker/tmp/docker-builder701026190/requirements-azure.txt: no such file or directory
Run Code Online (Sandbox Code Playgroud)

负责构建映像的 Azure 主机环境不包含 Dockerfile 所需的文件,这些文件存在于我启动 python 脚本的本地开发机器中。

我一整天都在寻找将这些文件添加到环境中的方法,但没有成功。

下面是 Dockerfile 和提交实验的 python 脚本的摘录。

FROM mcr.microsoft.com/azureml/base:intelmpi2018.3-ubuntu16.04 as base
COPY ./Docker/requirements-azure.txt /tmp/requirements-azure.txt # <- breaks here

[...]

Run Code Online (Sandbox Code Playgroud)

这是我提交实验的方式:

from azureml.core.environment import Environment
from azureml.core import Workspace
from azureml.core.model import Model
from azureml.core import Workspace, Experiment
from azureml.core.compute import ComputeTarget

from azureml.core import Experiment, Workspace
from azureml.train.estimator import Estimator
import os

ws = Workspace.from_config(path='/mnt/azure/config/workspace-config.json')
env = Environment(name="test")
env.docker.base_image = None
env.docker.base_dockerfile = './Docker/Dockerfile'
env.docker.enabled = True
compute_target = ComputeTarget(workspace=ws, name='GRComputeInstance')
estimator = Estimator(
    source_directory='/workspace/',
    compute_target=compute_target,
    entry_script="./src/ml/train/main.py",
    environment_definition=env
)
experiment = Experiment(workspace=ws, name="estimator-test")
run = experiment.submit(estimator)
run.wait_for_completion(show_output=True, wait_post_processing=True)
Run Code Online (Sandbox Code Playgroud)

任何的想法?

Lin*_*nPy 0

我认为为您的项目设置requirements.txt的正确方法是使用Define an inference configuration

name: project_environment
dependencies:
    - python=3.6.2
    - scikit-learn=0.20.0
    - pip:
        # You must list azureml-defaults as a pip dependency
    - azureml-defaults>=1.0.45
    - inference-schema[numpy-support]
Run Code Online (Sandbox Code Playgroud)

看到这个