【问题标题】:Docker container - different behaviour on Win and LinuxDocker 容器 - Win 和 Linux 上的不同行为
【发布时间】:2019-02-12 14:20:57
【问题描述】:

我有 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

【问题讨论】:

    标签: linux windows docker containers pipeline


    【解决方案1】:

    发现问题。

    我将所有环境变量传递到容器中 -> 在 linux 上我传递了诸如 PATH 之类的变量并销毁自动查找正确的 bin 文件夹。

    如果我将其称为/usr/local/bin/aws,它可以在两个系统上运行。仅传递相关的环境变量后,aws 即可开箱即用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-18
      相关资源
      最近更新 更多