摘要:我正在尝试使用命令依赖于某些环境变量(例如)的位置来定义一个dvc
步骤。问题是,当我在机器 A 上定义步骤时,变量在存储在文件中时会展开。在这种情况下,将无法在机器 B 上重现该步骤。我是否遇到了限制?如果不是这种情况,那么正确的方法是什么?dvc-run
$HOME
.dvc
dvc
更多详细信息:我在尝试定义命令为docker run
. 比如说:
- 在机器 A
myrepo
上位于/Users/user/myrepo
和 - 在机器 B 上,它位于
/home/ubuntu/myrepo
。
此外,假设我有一个脚本myrepo/script.R
可以处理要在myrepo/data/mydata.txt
. 最后,假设我的步骤命令类似于:
docker run -v $HOME/myrepo/:/prj/ my_docker_image /prj/script.R /prj/data/mydata.txt
dvc run -f step.dvc -d ... -d ... [cmd]
如果我正在运行上面cmd
的docker
执行,那么在step.dvc
环境变量$HOME
中将被扩展。在这种情况下,步骤将在机器 B 上中断。