You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure ML中创建PythonScriptStep时如何使自定义Docker环境生效

解决PythonScriptStep自定义Docker环境生效问题

问题根源

你之前的配置存在两个核心问题:

  • 直接通过RunConfiguration.environment.from_dockerfile创建环境未完成工作区注册,导致Docker配置未被正确激活(enabled为false);
  • userManagedDependencies=True会让系统优先使用本地依赖包,忽略Docker镜像中的配置,从而出现selenium导入错误。

正确实现步骤

1. 构建并注册自定义Docker环境

先单独创建并注册Environment对象,确保Docker镜像被正确构建并关联到工作区:

from azureml.core import Environment

# 从本地Dockerfile构建环境
custom_env = Environment.from_dockerfile(
    name="webscraping_env",
    dockerfile="./Dockerfile"
)
# 注册到工作区(必须步骤,否则无法被RunConfiguration引用)
custom_env.register(workspace=your_workspace)

2. 配置RunConfiguration关联自定义环境

明确指定使用注册后的环境,同时禁用用户管理依赖,启用Docker:

from azureml.core.runconfig import RunConfiguration, DockerConfiguration

rc = RunConfiguration()
# 绑定已注册的自定义环境
rc.environment = custom_env
# 启用Docker
rc.docker = DockerConfiguration(use_docker=True)
# 禁用用户管理依赖,强制使用Docker镜像中的依赖包
rc.python.user_managed_dependencies = False

3. 提交PythonScriptStep时关联RunConfiguration

创建步骤时将run_config参数设为上述配置,确保脚本在自定义Docker环境中运行:

from azureml.pipeline.steps import PythonScriptStep

scrape_step = PythonScriptStep(
    script_name="web_scraping_script.py",
    source_directory="./your_script_dir",
    run_config=rc,
    compute_target=your_compute_target,
    workspace=your_workspace
)

验证配置

提交前可打印rc的配置内容,确认:

  • docker.enabled为true;
  • python.userManagedDependencies为false;
  • environment指向已注册的webscraping_env。

内容的提问来源于stack exchange,提问作者MajorMajorMajorMajor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 12:27:19