【发布时间】:2020-11-13 12:27:13
【问题描述】:
我有工作的 docker 镜像,可以通过命令在本地运行
docker run --rm -u $(id -u) -v${PWD}:${PWD} -w${PWD} protocbuilder:1.0 [other unimportant args]
一切正常。我想使用 makefile 使用该容器自动执行操作,所以我创建了 make 命令:
test:
docker run --rm -u $(id -u) -v${PWD}:${PWD} -w${PWD} protocbuilder:1.0 [other unimportant args]
但是当我调用make test 时,我得到以下输出:
docker run --rm -u -v/Users/mikolaj/GolandProjects/project:/Users/mikolaj/GolandProjects/project -w/Users/mikolaj/GolandProjects/project protocbuilder:1.0 [other unimportant args]
docker: Error response from daemon: unable to find user -v/Users/mikolaj/GolandProjects/project: no matching entries in passwd file.
make: *** [test] Error 125
我不是很喜欢 makefile 的东西,所以我不明白为什么 makefile 在控制台中的标准调用 docker run 时会失败,一切正常。使用-u、-v 和-w 参数将用户映射到容器似乎存在问题。我应该在 makefile 中执行一些额外的步骤以使其正常工作吗?或者我可能需要在 makefile 中的 docker run 命令中更改某些内容?
提前致谢
【问题讨论】: