Aws-cli: Предоставить официальный образ AWS CLI Docker

Созданный на 26 апр. 2018  ·  28Комментарии  ·  Источник: aws/aws-cli

Я был удивлен, обнаружив, что официального образа Docker для разработки с помощью интерфейса командной строки AWS не существует. Пользователь «amazon» в Docker Hub содержит только эти образы для работы конкретно с ECS и Elastic Beanstalk, и, похоже, в новом Docker Store пока нет официальных образов Amazon Docker.

Когда я искал «aws cli» на Docker Hub, самым популярным образом (с более чем 1 миллионом загрузок) был этот образ, созданный Mesosphere. Это достаточно хорошо, с очень простым Dockerfile, основанным на сверхмаленьком образе Alpine Linux. После дальнейшего расследования я нашел репозиторий aws-codebuild-docker-images в этой организации с файлом Dockerfile ubuntu-base . Этот образ выглядит великолепно, так почему же его не отправили в Docker Hub/Store? Если на то пошло, почему ни одно из изображений в этом репо не было отправлено? Изображение Mesosphere aws-cli будет работать нормально, но его простота по сравнению с изображением ubuntu-base заставила меня задуматься о том, что оно не было должным образом оптимизировано; Точно так же образ ubuntu-base основан на Ubuntu 14.04.5, которая устарела и громоздка по сравнению с Alpine Linux.

тл;
Я считаю, что должен быть официальный образ Docker за aws-cli , поддерживаемый Amazon и размещенный в Docker Hub/Store. В идеале он должен поддерживать все основные современные дистрибутивы Linux, включая Alpine Linux. Нужно иметь возможность запустить следующую команду, и все просто заработает:

docker run -it amazon/aws-cli

РЕДАКТИРОВАТЬ

Эта проблема сейчас отслеживается по номеру 3553. Вы должны понравиться этому, чтобы показать свою поддержку и оставить комментарии в этой теме. Этот вопрос закрыт.

duplicate guidance service-api

Самый полезный комментарий

Это также ценно в докеризированных средах CI/CD (например, в конвейере Jenkins). Вместо того, чтобы устанавливать aws-cli для каждой сборки, проще просто использовать образ Docker, который можно кэшировать.

Все 28 Комментарий

Те изображения, на которые вы ссылаетесь, принадлежат команде CodeBuild для использования в их службе. Если вы хотите, чтобы они опубликовали их в Docker Hub, я бы порекомендовал связаться с ними на их сервисном форуме / через службу поддержки.

В общем, я не уверен, какая ценность в том, чтобы иметь образ докера, который является только CLI. Я вижу ценность чего-то сложного/сложного в установке и запуске mvp, но интерфейс командной строки не так сложен: установить python, установить pip, установить cli. Большинство дистрибутивов даже имеют готовый пакет (хотя вы рискуете оказаться устаревшим).

Образ AWS CLI Docker полезен в сценариях развертывания Kubernetes.

Это также ценно в докеризированных средах CI/CD (например, в конвейере Jenkins). Вместо того, чтобы устанавливать aws-cli для каждой сборки, проще просто использовать образ Docker, который можно кэшировать.

Да вау, я совсем забыл, что открывал эту тему...

Я понимаю, что может показаться тривиальным создание образа Docker для каждой небольшой программы CLI, поскольку apt get из Dockerfile должно быть достаточно для любого разумного пользователя, чтобы начать работу. Смысл в том, чтобы убрать дополнительные шаги. Да, я мог бы создать Dockerfile FROM базового образа Debian, apt get Python, а затем получить все другие необходимые мне инструменты, которые зависят от Python... или я мог бы просто начать FROM образ Python и на одну вещь меньше для загрузки, на одно препятствие для использования Python меньше, особенно для сценариев, упомянутых @xplorld и @alexandrusavin. Я не поднимал этот вопрос так много, потому что это ужасное препятствие, которое я не мог преодолеть без помощи Amazon, а потому, что это казалось тривиальным «почему бы и нет» для Amazon внедрить и добавить некоторую ценность для их AWS-and-Docker. -использование клиентов.

Это также удобно для тех, кто просто хочет проверить шаблоны cloudformation в конвейере CI.

Это также было бы полезно для локальной разработки и обновления последних версий интерфейса командной строки. У нас было несколько разработчиков, которые задерживались дольше, чем необходимо, в получении правильной версии Python, правильной версии pip, а затем правильной версии CLI. Возможность запустить docker run --rm awscli:latest ... была бы очень кстати.

Все, эта проблема сейчас отслеживается по номеру 3553. Вы должны понравиться этому, чтобы показать свою поддержку и оставить комментарии в этой теме. Этот вопрос закрыт.

Докер будет полезен.

Определенно официальный образ Docker будет полезен

установить python, установить pip, установить cli.

Затем запустите aws и получите command not found . Очень простой.

На данный момент я использую 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. Я вижу значение для чего-то, что сложно/сложно установить и запустить mvp, но CLI не так уж и сложен: установить python, установить pip, установить cli.

Не могу поверить, это комментарий сотрудника AWS. Это на самом деле грустно.

Я нахожусь в аналогичном сценарии, когда я хочу запустить K8S Cronjob, который выполняет резервное копирование на S3, имея официальный образ awscli _конечно, был бы удобен прямо сейчас_

Мы используем проблему № 3553 для отслеживания запроса функции для этого запроса.

Те изображения, на которые вы ссылаетесь, принадлежат команде CodeBuild для использования в их службе. Если вы хотите, чтобы они опубликовали их в Docker Hub, я бы порекомендовал связаться с ними на их сервисном форуме / через службу поддержки.

В общем, я не уверен, какая ценность в том, чтобы иметь образ докера, который является только CLI. Я вижу значение для чего-то, что сложно/сложно установить и запустить mvp, но CLI не так уж и сложен: установить python, установить pip, установить cli. Большинство дистрибутивов даже имеют готовый пакет (хотя вы рискуете оказаться устаревшим).

Лично я контейнеризирую столько, сколько могу, чтобы на моей рабочей станции не было нескольких пакетов. Пакеты, которые когда-нибудь могут противоречить другим при обновлении.

Привет, жители Github

Важно также отметить, что когда вы используете любую систему CI/CD, которая выставляет вам счет за продолжительность задачи развертывания (например, $xx.xx в час в месяц и т. д.), вы не можете позволить себе тратить время на установку снова и снова. снова инструменты, которые вам нужны после извлечения изображения, в котором нет всего, что вам нужно.

В моем случае я вижу, как загружается образ python, затем устанавливается zip-пакет, и теперь мне нужно установить awscli, а его установка занимает довольно много времени. Это просто потерянное время, без которого мы могли бы обойтись.

Наличие образа докера со всеми предустановленными инструментами будет бесценным.

Теперь здесь автоматически создается образ докера для каждого выпуска awscli .

⚠️ Отказ от ответственности: я автор

Спасибо b4nst. Но я выбрал тот, который создан и поддерживается Atlassian для Bitbucket Pipeline. Он находится на DockerHub как atlassian/pipelines-awscli (https://hub.docker.com/r/atlassian/pipelines-awscli). И я использую это с их конвейером.

@b4nst, пожалуйста, свяжите репозиторий Docker Hub с вашим GitHub, чтобы мы могли увидеть исходный код

Там уже была ссылка на страницу docker hub . Код размещен здесь

Слон в комнате здесь заключается в том, что когда люди используют CI/CD и обрабатывают конфиденциальные коды, которые являются частью корпоративного программного обеспечения, они, как правило, хотят знать, кто и что обрабатывает их код. Таким образом, даже с благими намерениями люди склонны проявлять осторожность, когда речь идет о чем-то, что крупная компания не поддержала, если они не увидят исходный код. Лично я считаю, что в образе докера @b4nst нет ничего плохого. Я проверил код, и он в порядке. Просто так получилось, что в версии от Atlassian есть еще несколько вещей, которые необходимы в процессе развертывания. Например, у него есть git, меньше среди прочего. Таким образом, один и тот же образ может позволить нам клонировать данные из любого репозитория git.

Полностью согласен с этим, лучшее решение — это AWS, поставляющая свой собственный обновленный образ докера (если вы доверяете им для cli, вы доверяете им для образа). Но между тем, я думаю, что открытый исходный код — меньшее зло. Даже если он поддерживается крупной компанией, он может быть поврежден (я бы не стал доверять Microsoft или Google для awscli, если я не могу прочитать код...)

Я сделал пекарню образов с непрерывным развертыванием в Dockerhub abdennour/aws .

Одним из изображений является изображение AWS .

Если вы хотите обновиться до последних версий, вам просто нужно обновить .env и открыть PR.

Даже образы AWS для amazonlinux, в документации которых указано, что cli для amazonlinux установлен по умолчанию... нет.

Amazon — монополия, и они это знают. Они не должны заботиться?

+1

Я оказался здесь, когда искал его, а потом нашел официальное изображение, поэтому я прикреплю его сюда для всех, кто найдет эту тему в будущем.

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

@Xaeonn Правильно, это новый официальный образ Docker AWS CLI. Разработчик Amazon только что объявил об этом прошлой ночью в № 3553, где эта проблема сейчас отслеживается, как я прокомментировал выше.

установить python, установить pip, установить cli.

Затем запустите aws и получите command not found . Очень простой.

:smile: :laughing: :laughing: классика :100: , всегда делает мой день

Была ли эта страница полезной?
0 / 5 - 0 рейтинги