在Docker bash脚本中运行时找不到命令

我有一个docker-compose文件,在入口处执行一个bash脚本。

这bash脚本删除几个文件,然后尝试printenv返回错误printenv: not found

现在,如果我以交互模式运行Docker容器并执行printenv它工作正常。

在交互模式下运行docker

docker run -it microsoft/aspnetcore-build /bin/sh

> printenv工作正常

在docker-compose中运行

 docker-compose -f docker-compose-build.yml up Starting ci_aspnetapp-build_1 Attaching to ci_aspnetapp-build_1 aspnetapp-build_1 | rm -rf ../**/bin -> Done aspnetapp-build_1 | rm -rf ../**/obj -> Done aspnetapp-build_1 | ./ci/build.sh: 8: ./ci/build.sh: printenv: not found ci_aspnetapp-build_1 exited with code 127 

Bash脚本(build.sh)

 #!bin/bash set -e rm -rf ../**/bin printf "rm -rf ../**/bin -> Done\n" rm -rf ../**/obj printf "rm -rf ../**/obj -> Done\n" rm -rf ../**/publish/web printenv printf "rm -rf ../**/publish/web -> Done\n" 

Docker-Compose文件(docker-compose-build.yml)

 version: '2' services: aspnetapp-build: image: microsoft/aspnetcore-build volumes: - ../.:/sln working_dir: /sln entrypoint: ["sh", "./ci/build.sh"] 

您正在删除包含printenv的bin目录。

这应该说明一下:

docker run -it --rm -w "/srv" microsoft/aspnetcore-build sh -c 'printenv; rm -rf ../**/bin; printenv'