Docker容器-Win和Linux上的不同行为

时间:2019-02-12 14:20:57

标签: linux windows docker containers pipeline

我有docker容器,我运行了它,一段时间后它必须执行此行

$(aws ecr get-login --region $AWS_DEFAULT_REGION | sed -e 's/-e none//g')

现在奇怪的是-当我在本地计算机(Windows)上运行它时,它会通过并写入Login Succeeded

当我在Linux-Ami代理上运行它时,一切正常运行,但是当它到达此行时将输出

/app/ops/release/docker-run.sh: 51: /app/ops/release/docker-run.sh: aws: not found

我很困惑,因为无论我何时执行docker,它实际上都具有相同的环境。唯一的非docker部分是构建映像并运行该映像(并且在该部分中,我了解是否存在一些差异),但是其他所有内容都在两种环境中基于相同Dockerfile的容器中运行。

唯一真正的区别是启动时传递到容器中的环境变量。

有什么主意吗?

用于为此容器构建映像的Dockerfile的一部分是RUN pip install --upgrade awscli

1 个答案:

答案 0 :(得分:0)

发现了问题。

我将所有环境变量都传递到了容器中->在Linux上,我传递了诸如PATH之类的变量,并破坏了自动查找正确的bin文件夹的可能性。

如果我将其命名为/usr/local/bin/aws,则它在两个系统上均可工作。仅传递相关的环境变量后,aws即开即用。