Hello World example does not work
Open
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 160
- Forks
- 31
- PR merge metrics
- No merged PRs in 30d
Description
Following the documentation fails to build the first example:
(mlcube) C:\Users\tomtz\Documents\dev\clones\mlcube_examples>type mlcube.yaml
runners:
docker:
pkg: mlcube_docker
k8s:
pkg: mlcube_k8s
kubeflow:
pkg: mlcube_kubeflow
ssh:
pkg: mlcube_ssh
platforms:
docker:
runner: docker
image: ${docker.image}
docker: docker
env_args: {}
gpu_args: ''
cpu_args: ''
build_args: {}
build_context: .
build_file: Dockerfile
build_strategy: auto
k8s:
runner: k8s
pvc: ${name}
image: ${docker.image}
namespace: default
kubeflow:
runner: kubeflow
image: ${docker.image}
pvc: ???
namespace: default
pipeline_host: ''
ssh:
runner: ssh
host: ''
platform: ''
remote_root: ''
interpreter: {}
authentication: {}
storage: {}
(mlcube) C:\Users\tomtz\Documents\dev\clones\mlcube_examples>mlcube run --mlcube=. --task=hello --platform=docker
Traceback (most recent call last):
File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\runpy.py", line 194, in _run_module_as_main
return _run_code(code, main_globals, None,
File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\runpy.py", line 87, in _run_code
exec(code, run_globals)
File "C:\Users\tomtz\anaconda3\envs\mlcube\Scripts\mlcube.exe\__main__.py", line 7, in <module>
File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\click\core.py", line 829, in __call__
return self.main(*args, **kwargs)
File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\click\core.py", line 782, in main
rv = self.invoke(ctx)
File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\click\core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\click\core.py", line 1066, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\click\core.py", line 610, in invoke
return callback(*args, **kwargs)
File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\click\decorators.py", line 21, in new_func
return f(get_current_context(), *args, **kwargs)
File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\mlcube\__main__.py", line 172, in run
runner_cls, mlcube_config = _parse_cli_args(ctx, mlcube, platform, workspace, resolve=True)
File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\mlcube\__main__.py", line 76, in _parse_cli_args
mlcube_config = MLCubeConfig.create_mlcube_config(
File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\mlcube\config.py", line 100, in create_mlcube_config
runner_cls.CONFIG.validate(mlcube_config)
File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\mlcube_docker\docker_run.py", line 67, in validate
_ = validator.check_unknown_keys(Config.DEFAULT.keys())\
File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\mlcube\validate.py", line 55, in check_values
self._validate_string_values(keys, **kwargs)
File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\mlcube\validate.py", line 27, in _validate_string_values
value = self.config.get(key, None)
File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\omegaconf\dictconfig.py", line 432, in get
return self._get_impl(key=key, default_value=default_value)
File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\omegaconf\dictconfig.py", line 445, in _get_impl
return self._resolve_with_default(
File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\omegaconf\basecontainer.py", line 63, in _resolve_with_default
resolved_node = self._maybe_resolve_interpolation(
File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\omegaconf\base.py", line 616, in _maybe_resolve_interpolation
return self._resolve_interpolation_from_parse_tree(
File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\omegaconf\base.py", line 482, in _resolve_interpolation_from_parse_tree
resolved = self.resolve_parse_tree(
File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\omegaconf\base.py", line 662, in resolve_parse_tree
return visitor.visit(parse_tree)
File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\antlr4\tree\Tree.py", line 34, in visit
return tree.accept(self)
File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\omegaconf\grammar\gen\OmegaConfGrammarParser.py", line 205, in accept
return visitor.visitConfigValue(self)
File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\omegaconf\grammar_visitor.py", line 101, in visitConfigValue
return self.visit(ctx.getChild(0))
File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\antlr4\tree\Tree.py", line 34, in visit
return tree.accept(self)
File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\omegaconf\grammar\gen\OmegaConfGrammarParser.py", line 339, in accept
return visitor.visitText(self)
File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\omegaconf\grammar_visitor.py", line 298, in visitText
return self.visitInterpolation(c)
File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\omegaconf\grammar_visitor.py", line 125, in visitInterpolation
return self.visit(ctx.getChild(0))
File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\antlr4\tree\Tree.py", line 34, in visit
return tree.accept(self)
File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\omegaconf\grammar\gen\OmegaConfGrammarParser.py", line 911, in accept
return visitor.visitInterpolationNode(self)
File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\omegaconf\grammar_visitor.py", line 158, in visitInterpolationNode
return self.node_interpolation_callback(inter_key, self.memo)
File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\omegaconf\base.py", line 643, in node_interpolation_callback
return self._resolve_node_interpolation(inter_key=inter_key, memo=memo)
File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\omegaconf\base.py", line 573, in _resolve_node_interpolation
raise InterpolationKeyError(f"Interpolation key '{inter_key}' not found")
omegaconf.errors.InterpolationKeyError: Interpolation key 'docker.image' not found
platform.docker.build_strategy.pull fails in the same way
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the documented hello command, then trace the failure through mlcube/main.py, config.py, mlcube_docker/docker_run.py, and validate.py as shown in the traceback. The example should run on the docker platform without the missing docker.image interpolation error, and platform.docker.build_strategy.pull should be checked for the same failure.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker, python
- Domain
- devops
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100