2017-03-18 151 views
0

我有一个docker-compose文件,该文件在条目上执行bash脚本。在Docker bash脚本中运行时找不到命令

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

现在,如果我在交互模式泊坞窗容器并执行它工作正常的printenv

在交互模式

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

> printenv运行码头工人正常工作

在运行搬运工,组成

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脚本(二uild.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" 

多克尔 - 撰写文件(泊坞窗 - 撰写-build.yml)

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

回答

1

您删除bin目录包含printenv。

这应该说明吧:

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