【发布时间】:2017-08-10 09:58:55
【问题描述】:
我有一个 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"]
【问题讨论】:
标签: bash docker docker-compose