Una breve introducción al caso de uso:
Estoy usando un dockercontenedor para ejecutar mis gopruebas usando go test ./.... Esto se puede lograr fácilmente usando docker exec <container> /bin/sh -c "go test ./...". Lamentablemente, se go test ./...ejecuta en todos los subdirectorios y me gustaría excluir uno (el directorio de proveedores).
La solución recomendada para esto es usar el siguiente comando:, de go test $(go list ./... | grep -v '<excluded>'alguna manera, esto me deja con el siguiente resultado:
docker run golang:1.6.2-alpine /bin/sh -c "go test " (He probado esto tanto en ejecución como en ejecución, pero probablemente usan el mismo núcleo).
Cuando me meto en el contenedor usando docker exec -it <container_id> /bin/shy ejecuto exactamente el mismo comando, funciona de maravilla.
Parece que ejecutar comandos de shell a través de docker exec / run no admite ningún comando anidado con $()?
vendorpor ejemplo.
$(...)su shell lo expandió entre comillas dobles antes de que se ejecutara dentro del contenedor acoplable. Entonces, el problema puede provenir de su contenido de directorio actual. Hizo docker exec container /bin/sh -c 'go test $(go list ./... | grep -v "<excluded>")'el trabajo?
$(go list ./... | grep -v '<excluded>', que<excluded>es?