Aws-cli: Proporcione la imagen oficial de AWS CLI Docker

Creado en 26 abr. 2018  ·  28Comentarios  ·  Fuente: aws/aws-cli

Me sorprendió descubrir que no existe una imagen oficial de Docker para el desarrollo con la CLI de AWS. El usuario "amazon" en Docker Hub contiene solo estas imágenes para trabajar específicamente con ECS y Elastic Beanstalk, y todavía no parece haber ninguna imagen oficial de Amazon Docker en la nueva Docker Store.

Cuando busqué "aws cli" en Docker Hub, la imagen más popular (con más de 1 millón de descargas) fue esta , creada por Mesosphere. Es lo suficientemente bueno, con un Dockerfile muy simple basado en la imagen súper pequeña de Alpine Linux. Luego de una mayor investigación, encontré el repositorio aws-codebuild-docker-images en esta organización, con un archivo Docker ubuntu-base . Esta imagen se ve muy bien, entonces, ¿por qué no se envió a Docker Hub/Store? De hecho, ¿por qué no se ha enviado ninguna de las imágenes de ese repositorio? La imagen de Mesosphere aws-cli funcionará bien, pero su simplicidad en comparación con ubuntu-base me hizo preocuparme de que no se haya optimizado correctamente; De manera similar, la imagen ubuntu-base se basa en Ubuntu 14.04.5, que es antiguo y voluminoso en comparación con Alpine Linux.

TL;
Creo que debería haber una imagen Docker oficial aws-cli mantenida por Amazon y enviada a Docker Hub/Store. Idealmente, debería ser compatible con todas las principales distribuciones modernas de Linux, incluido Alpine Linux. Uno debería poder ejecutar el siguiente comando y hacer que todo funcione:

docker run -it amazon/aws-cli

EDITAR

Este problema ahora se está rastreando en el n.º 3553. Deberías darle me gusta a ese para mostrar tu apoyo y dejar comentarios en ese hilo. Este problema está cerrado.

duplicate guidance service-api

Comentario más útil

También es valioso en entornos dockerizados de CI/CD (como la canalización de Jenkins). En lugar de instalar aws-cli en cada compilación, es más fácil usar una imagen de Docker que se pueda almacenar en caché.

Todos 28 comentarios

Las imágenes a las que vincula son propiedad del equipo de CodeBuild para su uso en su servicio. Si desea que los publiquen en Docker Hub, le recomiendo que se comunique con ellos en su foro de servicio/a través de soporte.

En general, no estoy seguro de qué valor tiene tener una imagen acoplable que sea solo la CLI. Puedo ver el valor de algo que es difícil/complicado de instalar y ejecutar un mvp, pero la CLI no es tan complicada: instale python, instale pip, instale cli. La mayoría de las distribuciones incluso tienen un paquete preconstruido (aunque corre el riesgo de estar desactualizado).

Una imagen de Docker de la AWS CLI es útil en escenarios de implementación de Kubernetes.

También es valioso en entornos dockerizados de CI/CD (como la canalización de Jenkins). En lugar de instalar aws-cli en cada compilación, es más fácil usar una imagen de Docker que se pueda almacenar en caché.

Sí, wow, olvidé por completo que abrí este número...

Me doy cuenta de que puede parecer trivial crear una imagen de Docker para cada pequeño programa CLI que existe, ya que apt get desde un Dockerfile debería ser suficiente para que cualquier usuario sensato se ponga en marcha. El punto es eliminar pasos adicionales. Sí, podría crear un Dockerfile FROM la imagen base de Debian, apt get Python, y luego obtener todas las demás herramientas que necesito que dependan de Python... o simplemente podría comenzar FROM la imagen de Python y tendrá una cosa menos que descargar, una barrera menos para usar Python, especialmente para los escenarios mencionados por @xplorld y @alexandrusavin. No planteé tanto este problema porque es un obstáculo terrible que no podría superar sin la ayuda de Amazon, sino porque parecía un "por qué no" trivial para que Amazon lo implementara y agregara algo de valor a su AWS y Docker. -Usando clientes.

Esto también es útil para aquellos que solo quieren validar plantillas de formación en la nube en una canalización de CI.

También sería útil para el desarrollo local y mantenerse al día con las últimas versiones de la CLI. Varios desarrolladores se han retrasado más de lo necesario para obtener la versión correcta de python, la versión correcta de pip y luego la versión correcta de la CLI. Ser capaz de ejecutar docker run --rm awscli:latest ... sería muy útil.

Todos, este problema ahora se está rastreando en el n.º 3553. Deberías darle me gusta a ese para mostrar tu apoyo y dejar comentarios en ese hilo. Este problema está cerrado.

Docker será útil.

Definitivamente, la imagen oficial de Docker será útil

instalar python, instalar pip, instalar cli.

Luego ejecute aws y obtenga command not found . Muy simple.

Por ahora estoy usando un Dockerfile como en este repositorio :

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

Es algo trivial, pero definitivamente sería mejor tener una imagen oficial del aws-cli .

En general, no estoy seguro de qué valor tiene tener una imagen acoplable que sea solo la CLI. Puedo ver el valor de algo que es difícil/complicado de instalar y ejecutar un mvp, pero la CLI no es tan complicada: instale python, instale pip, instale cli.

No puedo creer, este es un comentario de un empleado de AWS. En realidad es triste.

Estoy en un escenario similar en el que quiero ejecutar un Cronjob K8S que realiza copias de seguridad en S3, tener una imagen oficial de awscli _seguro que sería útil en este momento_

Estamos utilizando el número 3553 para realizar un seguimiento de la solicitud de funciones para esta solicitud.

Las imágenes a las que vincula son propiedad del equipo de CodeBuild para su uso en su servicio. Si desea que los publiquen en Docker Hub, le recomiendo que se comunique con ellos en su foro de servicio/a través de soporte.

En general, no estoy seguro de qué valor tiene tener una imagen acoplable que sea solo la CLI. Puedo ver el valor de algo que es difícil/complicado de instalar y ejecutar un mvp, pero la CLI no es tan complicada: instale python, instale pip, instale cli. La mayoría de las distribuciones incluso tienen un paquete preconstruido (aunque corre el riesgo de estar desactualizado).

Personalmente, organizo todo lo que puedo en contenedores para ayudar a mantener mi estación de trabajo libre de múltiples paquetes. Paquetes que algún día pueden contradecir a otros al actualizarse.

Hola gente de Github

También es importante tener en cuenta que cuando utiliza cualquier sistema de CI/CD que le factura la duración de la tarea de implementación (por ejemplo, $xx,xx por hora al mes, etc.), entonces no puede permitirse perder tiempo instalando una y otra vez. nuevamente las herramientas que necesita después de extraer una imagen que no tiene todo lo que necesita.

En mi caso, veo que se extrae una imagen de python, luego se instala el paquete zip, y ahora necesito instalar awscli y eso lleva bastante tiempo instalarlo. Es simplemente una pérdida de tiempo que podríamos prescindir.

Tener una imagen docker con todas las herramientas preinstaladas no tendrá precio.

Ahora hay una imagen acoplable creada automáticamente en cada versión de awscli aquí

⚠️ Descargo de responsabilidad: soy el autor

Gracias b4nst. Pero elegí uno creado y mantenido por Atlassian para Bitbucket Pipeline. Está en DockerHub como atlassian/pipelines-awscli (https://hub.docker.com/r/atlassian/pipelines-awscli). Y estoy usando esto con su canalización.

@b4nst , vincule el repositorio de docker hub con su github para que podamos ver el código fuente

Ya había un enlace a la página de docker hub . El código está alojado aquí .

El elefante en la habitación aquí es que cuando las personas usan CI/CD y manejan códigos confidenciales que son parte de un software corporativo, tienden a querer saber quién y qué está manejando su código. Entonces, incluso con las buenas intenciones, las personas tienden a desconfiar cuando se trata de algo que una gran empresa no respalda, a menos que vean el código fuente. Personalmente, creo que no hay nada malo con la imagen acoplable de @b4nst . Revisé el código y está bien. Simplemente sucedió que el de Atlassian tiene algunas cosas más que se necesitan durante nuestros procesos de implementación. Por ejemplo, tiene git, less entre otras cosas. De esa manera, la misma imagen puede permitirnos clonar cosas de cualquier repositorio de git.

Totalmente de acuerdo con eso, la mejor solución es que AWS envíe su propia imagen acoplable actualizada (si confía en ellos para la CLI, confía en ellos para la imagen). Pero mientras tanto, creo que el código abierto es el mal menor. Incluso si está respaldado por una gran empresa, podría estar dañado (no confiaría en Microsoft o Google para un awscli si no puedo leer el código...)

Hice una panadería de imágenes con Deployment continuo a Dockerhub abdennour/aws .

Una de las imágenes es la imagen de AWS .

Si desea actualizar a las últimas versiones, solo necesita actualizar .env y abrir PR.

Incluso las imágenes de AWS para amazonlinux que indican en la documentación que amazonlinux tiene el cli instalado de forma predeterminada... no lo hacen.

Amazon es un monopolio y lo saben. ¿A ellos no les tiene que importar?

+1

Terminé aquí mientras buscaba uno y luego encontré una imagen oficial, así que la dejaré aquí para cualquiera que encuentre este hilo en el futuro.

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

@Xaeonn Correcto, esa es la nueva imagen oficial de AWS CLI Docker. Un desarrollador de Amazon acaba de anunciar esto anoche en el n.° 3553, donde ahora se está rastreando este problema, como comenté anteriormente.

instalar python, instalar pip, instalar cli.

Luego ejecute aws y obtenga command not found . Muy simple.

:sonrisa: :risa: :risa: clásico :100: , siempre me alegra el día

¿Fue útil esta página
0 / 5 - 0 calificaciones