用例的简短介绍:
我正在使用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 命令不支持任何嵌套的命令$()?