用例的简短介绍:
我正在使用docker
容器来运行我的go
测试go test ./...
。这可以使用 轻松实现docker exec <container> /bin/sh -c "go test ./..."
。不幸的是go test ./...
运行在所有子目录中,我想排除一个(供应商目录)。
建议的解决方案是使用以下命令:go test $(go list ./... | grep -v '<excluded>'
,不知何故这让我得到以下结果:
docker run golang:1.6.2-alpine /bin/sh -c "go test "
(我已经在 run 和 exec 上对此进行了测试,但它们可能使用相同的核心)。
当我使用 ssh 进入容器docker exec -it <container_id> /bin/sh
并运行完全相同的命令时,它就像一个魅力。
似乎通过 docker exec/run 执行 shell 命令不支持任何嵌套的命令$()
?