摘要:我正在尝试使用命令依赖于某些环境变量(例如)的位置来定义一个dvc步骤。问题是,当我在机器 A 上定义步骤时,变量在存储在文件中时会展开。在这种情况下,将无法在机器 B 上重现该步骤。我是否遇到了限制?如果不是这种情况,那么正确的方法是什么?dvc-run$HOME.dvcdvc
更多详细信息:我在尝试定义命令为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 上中断。