Skip to content

Commit 54d158a

Browse files
authored
[Internal Component] Skip verifying existing docker files after environment is resolved (Azure#29021)
* skip validate docker file when environment is resolved * remove useless code
1 parent 23d56ff commit 54d158a

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

sdk/ml/azure-ai-ml/azure/ai/ml/_internal/entities/environment.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ def __init__(
3535
self.name = name
3636
self.version = version
3737
self.python = python
38+
self._docker_file_resolved = False
3839

3940
@staticmethod
4041
def _parse_file_path(value: str) -> str:
@@ -75,7 +76,11 @@ def _validate_docker_section(self, base_path: str, skip_path_validation: bool) -
7576
return validation_result
7677
dockerfile_file = self.docker[self.BUILD][self.DOCKERFILE]
7778
dockerfile_file = self._parse_file_path(dockerfile_file)
78-
if not skip_path_validation and not (Path(base_path) / dockerfile_file).is_file():
79+
if (
80+
not self._docker_file_resolved
81+
and not skip_path_validation
82+
and not (Path(base_path) / dockerfile_file).is_file()
83+
):
7984
validation_result.append_error(
8085
yaml_path=f"docker.{self.BUILD}.{self.DOCKERFILE}",
8186
message=f"Dockerfile not exists: {dockerfile_file}",
@@ -128,6 +133,7 @@ def _resolve_docker_section(self, base_path: Union[Path, str]) -> None:
128133
dockerfile_file = self._parse_file_path(dockerfile_file)
129134
with open(Path(base_path) / dockerfile_file, "r") as f:
130135
self.docker[self.BUILD][self.DOCKERFILE] = f.read()
136+
self._docker_file_resolved = True
131137
return
132138

133139
def resolve(self, base_path: Union[Path, str]) -> None:

sdk/ml/azure-ai-ml/tests/internal/unittests/test_component.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -334,6 +334,9 @@ def test_environment_dependencies_resolve(self, yaml_path: str, expected_dict: D
334334
component.environment.resolve(component._base_path)
335335
rest_obj = component._to_rest_object()
336336
assert rest_obj.properties.component_spec["environment"] == expected_dict
337+
assert component.environment._validate_docker_section(
338+
base_path=component.base_path, skip_path_validation=False
339+
).passed
337340

338341
@pytest.mark.parametrize(
339342
"yaml_path,invalid_field",

0 commit comments

Comments
 (0)