Aws-cli: 提供官方 AWS CLI Docker 镜像

创建于 2018-04-26  ·  28评论  ·  资料来源: aws/aws-cli

我惊讶地发现没有用于使用 AWS CLI 进行开发的官方 Docker 映像。 Docker Hub 上的“amazon”用户只包含这些专门用于 ECS 和 Elastic Beanstalk 的镜像,而且新的 Docker Store 上似乎还没有任何官方的 Amazon Docker 镜像。

当我在 Docker Hub 上搜索“aws cli”时,最受欢迎的镜像(下载量超过 100 万次)是由 Mesosphere 创建的这个镜像。 已经足够好了,一个非常简单的 Dockerfile 基于超小的 Alpine Linux 镜像。 经过进一步调查,我在这个组织中发现了aws-codebuild-docker-images存储库,其中包含一个ubuntu-base Dockerfile。 这张图片看起来不错,为什么还没有推送到 Docker Hub/Store? 就此而言,为什么该仓库中的任何图像都没有被推送? Mesosphere aws-cli图像可以正常工作,但与ubuntu-base相比,它的简单性让我担心它没有得到适当的优化; 同样, ubuntu-base映像基于 Ubuntu 14.04.5,与 Alpine Linux 相比,它既旧又笨重。

TL;
我相信应该有一个由 Amazon 维护并推送到 Docker Hub/Store 的官方aws-cli Docker 镜像。 理想情况下,它应该支持所有主要的现代 Linux 发行版,包括 Alpine Linux。 应该能够运行以下命令,并且一切正常:

docker run -it amazon/aws-cli

编辑

这个问题现在在#3553 被跟踪。 您应该希望那个人表达您的支持并在该线程中留下评论。 此问题已关闭。

duplicate guidance service-api

最有用的评论

它在 CI/CD dockerised 环境(如 Jenkins 管道)中也很有价值。 无需在每个构建中都安装 aws-cli,而是使用可以缓存的 Docker 映像更容易。

所有28条评论

您链接到的那些图像归 CodeBuild 团队所有,用于他们的服务。 如果您希望他们将它们发布到 docker hub,我建议您在他们的服务论坛/通过支持与他们联系。

一般来说,我不确定只有 CLI 的 docker 映像有什么价值。 我可以看到安装困难/复杂并运行 mvp 的东西的价值,但 CLI 并不复杂:安装 python,安装 pip,安装 cli。 大多数发行版甚至都有预构建的软件包(尽管您冒着过时的风险)。

AWS CLI Docker 映像在 Kubernetes 部署方案中很有用。

它在 CI/CD dockerised 环境(如 Jenkins 管道)中也很有价值。 无需在每个构建中都安装 aws-cli,而是使用可以缓存的 Docker 映像更容易。

是的哇我有点完全忘记我打开了这个问题......

我意识到为每个小 CLI 程序创建 Docker 映像似乎微不足道,因为来自 Dockerfile 的apt get应该足以让任何明智的用户启动和运行。 关键是删除额外的步骤。 是的,我可以创建一个 Dockerfile FROM基本 debian 映像apt get Python,然后获取我需要的所有其他依赖于 Python 的工具......或者我可以开始FROM Python 镜像,下载的东西少了一件,使用 Python 的障碍少了一件,特别是对于@xplorld和@alexandrusavin 提到的场景。 我没有过多地提出这个问题,因为这是一个可怕的障碍,没有亚马逊的帮助我无法克服,而是因为亚马逊实施并为其 AWS 和 Docker 增加一些价值似乎是一个微不足道的“为什么不” - 使用客户。

这对于那些只想在 CI 管道中验证 cloudformation 模板的人来说也很方便

它对于本地开发和跟上最新版本的 CLI 也很有用。 在获得正确版本的 python、正确版本的 pip 和正确版本的 CLI 方面,我们已经有几个开发人员被延迟了超过必要的时间。 能够运行docker run --rm awscli:latest ...将非常方便。

全部,这个问题现在被跟踪在#3553。 您应该希望那个人表达您的支持并在该线程中留下评论。 此问题已关闭。

Docker 会很有用。

肯定官方的 Docker 镜像会很有用

安装python,安装pip,安装cli。

然后运行aws并得到command not found 。 很简单的。

现在我正在使用像这个 repo中的 Dockerfile :

FROM python:alpine

ARG CLI_VERSION=1.16.86

RUN apk -uv add --no-cache groff jq less && \
    pip install --no-cache-dir awscli==$CLI_VERSION

WORKDIR /aws

CMD sh

这是一件微不足道的事情,但拥有aws-cli的官方形象肯定会更好。

一般来说,我不确定只有 CLI 的 docker 映像有什么价值。 我可以看到安装困难/复杂并运行 mvp 的东西的价值,但 CLI 并不复杂:安装 python,安装 pip,安装 cli。

我不敢相信,这是来自 AWS 员工的评论。 其实很可悲。

我在一个类似的场景中,我想运行一个执行 S3 备份的 K8S Cronjob,拥有一个官方的 awscli 映像_现在肯定会很方便_

我们正在使用 issue #3553 来跟踪此请求的功能请求。

您链接到的那些图像归 CodeBuild 团队所有,用于他们的服务。 如果您希望他们将它们发布到 docker hub,我建议您在他们的服务论坛/通过支持与他们联系。

一般来说,我不确定只有 CLI 的 docker 映像有什么价值。 我可以看到安装困难/复杂并运行 mvp 的东西的价值,但 CLI 并不复杂:安装 python,安装 pip,安装 cli。 大多数发行版甚至都有预构建的软件包(尽管您冒着过时的风险)。

就个人而言,我尽可能多地进行容器化,以帮助保持我的工作站清洁多个包。 某天更新时可能会与其他软件包相矛盾的软件包。

你好 Github 的人们

还需要注意的是,当您使用任何按部署任务持续时间计费的 CI/CD 系统时(例如,每月每小时 xx.xx 美元等),那么您就不能一遍又一遍地花时间安装再次拉取不具备您需要的所有图像后所需的工具。

在我的情况下,我看到一个 python 图像被拉出,然后是 zip 包正在安装,现在我需要安装 awscli 并且需要很长时间才能安装。 这只是我们可以做的浪费时间。

拥有一个包含所有预装工具的 docker 镜像将是无价的。

现在在每个 awscli 版本上自动构建了一个docker映像

⚠️ 免责声明:我是作者

谢谢b4nst。 但我选择了由 Atlassian 为 Bitbucket Pipeline 构建和维护的一个。 它在 DockerHub 上作为 atlassian/pipelines-awscli (https://hub.docker.com/r/atlassian/pipelines-awscli)。 我正在将其与他们的管道一起使用。

@b4nst请将 docker hub repo 与您的 github 链接,以便我们查看源代码

已经有一个指向docker hub 页面的链接。 代码托管在这里

房间里的大象是,当人们使用 CI/CD 并处理作为公司软件一部分的敏感代码时,他们往往想知道谁和什么在处理他们的代码。 因此,即使有良好的意愿,人们也会对大公司不支持的东西保持警惕,除非他们看到源代码。 我个人认为@b4nst的 docker 镜像没有任何问题。 我检查了代码,没问题。 碰巧的是,来自 Atlassian 的那个还有一些在我们的部署过程中需要的东西。 例如,它有 git,除其他外更少。 这样,同一个镜像就可以让我们从任何 git 存储库中克隆东西。

完全同意这一点,最好的解决方案是 AWS 提供自己的最新 docker 映像(如果您信任他们的 cli,那么您信任他们的映像)。 但与此同时,我认为开源是较小的邪恶。 即使它得到一家大公司的支持,它也可能被破坏(如果我看不懂代码,我不会相信微软或谷歌的 awscli ......)

我制作了一个持续部署到 Dockerhub abdennour/aws的图像面包店

图像之一是AWS 图像

如果要升级到最新版本,只需要更新.env并打开 PR。

即使是 amazonlinux 的 AWS 映像,在文档中指出 amazonlinux 默认安装了 cli ......不要。

亚马逊是一家垄断企业,他们知道这一点。 他们不用管吗?

+1

我在寻找一张照片时最终来到了这里,后来找到了一张官方图片,所以我会把它贴在这里,供以后找到这个帖子的人使用。

https://hub.docker.com/r/amazon/aws-cli

@Xaeonn正确,这是新的官方 AWS CLI Docker 映像。 正如我在上面评论的那样,亚马逊开发人员昨晚刚刚在 #3553 中宣布了这一点,现在正在跟踪这个问题。

安装python,安装pip,安装cli。

然后运行aws并得到command not found 。 很简单的。

:smile: :laughing: :laughing: 经典 :100: , 总是让我开心

此页面是否有帮助?
0 / 5 - 0 等级