我有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
答案 0 :(得分:0)
发现了问题。
我将所有环境变量都传递到了容器中->在Linux上,我传递了诸如PATH
之类的变量,并破坏了自动查找正确的bin
文件夹的可能性。
如果我将其命名为/usr/local/bin/aws
,则它在两个系统上均可工作。仅传递相关的环境变量后,aws
即开即用。