Saya terkejut menemukan bahwa tidak ada image Docker resmi untuk pengembangan dengan AWS CLI. Pengguna "amazon" di Docker Hub hanya berisi gambar - gambar ini untuk bekerja secara khusus dengan ECS dan Elastic Beanstalk, dan tampaknya belum ada gambar Amazon Docker resmi di Docker Store baru.
Ketika saya mencari "aws cli" di Docker Hub, gambar paling populer (dengan 1M+ unduhan) adalah gambar ini , yang dibuat oleh Mesosphere. Ini cukup bagus, dengan Dockerfile yang sangat sederhana berdasarkan image Alpine Linux yang sangat kecil. Setelah penyelidikan lebih lanjut, saya menemukan aws-codebuild-docker-images
repo di organisasi ini, dengan ubuntu-base
Dockerfile. Gambar ini tampak hebat, jadi mengapa belum didorong ke Docker Hub/Store? Dalam hal ini, mengapa tidak ada gambar dalam repo itu yang didorong? Gambar aws-cli
Mesosphere akan bekerja dengan baik, tetapi kesederhanaannya dibandingkan dengan ubuntu-base
membuat saya khawatir bahwa itu belum dioptimalkan dengan benar; demikian pula, gambar ubuntu-base
didasarkan pada Ubuntu 14.04.5, yang lebih tua dan besar dibandingkan dengan Alpine Linux.
TL;
Saya percaya harus ada gambar Docker aws-cli
resmi yang dikelola oleh Amazon dan didorong ke Docker Hub/Store. Idealnya, itu harus mendukung semua distro Linux modern utama, termasuk Alpine Linux. Seseorang harus dapat menjalankan perintah berikut, dan semuanya berfungsi:
docker run -it amazon/aws-cli
Masalah ini sekarang sedang dilacak di #3553. Anda harus menyukai yang itu untuk menunjukkan dukungan Anda dan meninggalkan komentar di utas itu. Masalah ini ditutup.
Gambar-gambar yang Anda tautkan dimiliki oleh tim CodeBuild untuk digunakan dalam layanan mereka. Jika Anda ingin mereka mempublikasikannya ke hub buruh pelabuhan, saya sarankan untuk menghubungi mereka di forum layanan mereka/melalui dukungan.
Secara umum saya tidak yakin apa nilainya memiliki gambar buruh pelabuhan yang hanya CLI. Saya dapat melihat nilai untuk sesuatu yang sulit/rumit untuk diinstal dan menjalankan mvp, tetapi CLI tidak terlalu rumit: instal python, instal pip, instal cli. Sebagian besar distro bahkan memiliki paket bawaan (meskipun Anda berisiko ketinggalan zaman).
Gambar AWS CLI Docker berguna dalam skenario penerapan Kubernetes.
Ini juga berharga di lingkungan CI/CD yang di-docker (seperti pipa Jenkins). Daripada menginstal aws-cli di setiap build, lebih mudah menggunakan image Docker yang dapat di-cache.
Ya wow saya agak benar-benar lupa bahwa saya membuka masalah ini ...
Saya menyadari bahwa mungkin tampak sepele untuk membuat gambar Docker untuk setiap program CLI kecil di luar sana, karena apt get
ing dari Dockerfile seharusnya cukup untuk setiap pengguna yang masuk akal untuk bangun dan berjalan. Intinya adalah untuk menghapus langkah-langkah tambahan. Ya saya bisa membuat Dockerfile FROM
gambar dasar debian, apt get
Python, dan kemudian mendapatkan semua alat lain yang saya butuhkan yang bergantung pada Python...atau saya bisa memulai FROM
gambar Python dan memiliki satu hal yang lebih sedikit untuk diunduh, satu penghalang lebih sedikit untuk menggunakan Python, terutama untuk skenario yang disebutkan oleh @xplorld dan @alexandrusavin. Saya tidak terlalu mengangkat masalah ini karena ini adalah penghalang jalan yang mengerikan yang tidak dapat saya atasi tanpa bantuan Amazon, tetapi karena sepertinya "mengapa tidak" sepele bagi Amazon untuk menerapkan dan menambahkan beberapa nilai untuk AWS-dan-Docker mereka. -menggunakan pelanggan.
Ini juga berguna bagi mereka yang hanya ingin memvalidasi template cloudformation dalam pipeline CI
Ini juga akan berguna untuk pengembangan lokal dan mengikuti versi terbaru dari CLI. Kami memiliki beberapa pengembang yang tertunda lebih lama dari yang diperlukan untuk mendapatkan versi python yang tepat, versi pip yang tepat, dan kemudian versi CLI yang tepat. Mampu menjalankan docker run --rm awscli:latest ...
akan sangat berguna.
Semua, Masalah ini sekarang sedang dilacak di #3553. Anda harus menyukai yang itu untuk menunjukkan dukungan Anda dan meninggalkan komentar di utas itu. Masalah ini ditutup.
Docker akan berguna.
Pasti gambar Docker resmi akan berguna
instal python, instal pip, instal cli.
Kemudian jalankan aws
dan dapatkan command not found
. Sangat sederhana.
Untuk saat ini saya menggunakan Dockerfile seperti di repo ini :
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
Ini adalah hal yang sepele untuk dilakukan, tetapi akan lebih baik untuk memiliki gambar resmi dari aws-cli
.
Secara umum saya tidak yakin apa nilainya memiliki gambar buruh pelabuhan yang hanya CLI. Saya dapat melihat nilai untuk sesuatu yang sulit/rumit untuk diinstal dan menjalankan mvp, tetapi CLI tidak terlalu rumit: instal python, instal pip, instal cli.
Saya tidak percaya, ini adalah komentar dari karyawan AWS. Ini sebenarnya menyedihkan.
Saya berada dalam skenario serupa di mana saya ingin menjalankan K8S Cronjob yang melakukan pencadangan ke S3, memiliki gambar awscli resmi _pasti akan berguna saat ini_
Kami menggunakan masalah #3553 untuk melacak permintaan fitur untuk permintaan ini.
Gambar-gambar yang Anda tautkan dimiliki oleh tim CodeBuild untuk digunakan dalam layanan mereka. Jika Anda ingin mereka mempublikasikannya ke hub buruh pelabuhan, saya sarankan untuk menghubungi mereka di forum layanan mereka/melalui dukungan.
Secara umum saya tidak yakin apa nilainya memiliki gambar buruh pelabuhan yang hanya CLI. Saya dapat melihat nilai untuk sesuatu yang sulit/rumit untuk diinstal dan menjalankan mvp, tetapi CLI tidak terlalu rumit: instal python, instal pip, instal cli. Sebagian besar distro bahkan memiliki paket bawaan (meskipun Anda berisiko ketinggalan zaman).
Secara pribadi saya menyimpan sebanyak yang saya bisa untuk membantu menjaga workstation saya bersih dari beberapa paket. Paket yang suatu hari mungkin bertentangan dengan yang lain saat diperbarui.
Halo Warga Github
Penting juga untuk dicatat bahwa ketika Anda menggunakan sistem CI/CD yang menagih durasi tugas penerapan Anda (misalnya $xx.xx per jam per bulan, dll.), maka Anda tidak dapat menghabiskan waktu untuk menginstal berulang kali lagi alat yang Anda butuhkan setelah menarik gambar yang tidak memiliki semua yang Anda butuhkan.
Dalam kasus saya, saya melihat gambar python ditarik, lalu paket Zip diinstal, dan sekarang saya perlu menginstal awscli dan yang membutuhkan waktu cukup lama untuk diinstal. Ini hanya membuang-buang waktu yang bisa kita lakukan tanpanya.
Memiliki gambar buruh pelabuhan dengan semua alat pra-instal akan sangat berharga.
Sekarang ada gambar buruh pelabuhan yang dibuat secara otomatis pada setiap rilis awscli di sini
️ Penafian: Saya penulisnya
Terima kasih b4nst. Tapi saya telah memilih satu yang dibangun dan dikelola oleh Atlassian untuk Bitbucket Pipeline. Itu ada di DockerHub sebagai atlassian/pipelines-awscli (https://hub.docker.com/r/atlassian/pipelines-awscli). Dan saya menggunakan ini dengan saluran pipa mereka.
@b4nst tolong tautkan docker hub repo dengan github Anda sehingga kami dapat melihat kode sumbernya
Sudah ada tautan ke halaman hub buruh pelabuhan . Kode di-host di sini
Gajah di ruangan ini adalah ketika orang menggunakan CI/CD, dan menangani kode sensitif yang merupakan bagian dari perangkat lunak perusahaan, mereka cenderung ingin tahu siapa dan apa yang menangani kode mereka. Jadi bahkan dengan niat baik, orang cenderung waspada ketika datang ke sesuatu yang tidak kembali oleh perusahaan besar kecuali mereka melihat kode sumbernya. Saya pribadi berpikir bahwa tidak ada yang salah dengan gambar buruh pelabuhan @b4nst . Saya memeriksa kode dan itu baik-baik saja. Kebetulan yang dari Atlassian memiliki beberapa hal lagi di dalamnya yang diperlukan selama proses penerapan kami. Misalnya, ia memiliki git, kurang antara lain. Dengan begitu, gambar yang sama memungkinkan kita mengkloning barang dari repositori git mana pun.
Sangat setuju dengan itu, solusi terbaik adalah AWS mengirimkan gambar buruh pelabuhannya sendiri yang terbaru (jika Anda memercayai mereka untuk cli, Anda memercayai mereka untuk gambar). Tapi sementara itu, saya pikir open source adalah kejahatan yang lebih rendah. Bahkan jika didukung oleh perusahaan besar, itu bisa rusak (saya tidak akan mempercayai Microsoft atau Google untuk awscli jika saya tidak dapat membaca kodenya ...)
Saya membuat toko roti gambar dengan Deployment berkelanjutan ke Dockerhub abdennour/aws .
Salah satu gambar adalah gambar AWS .
Jika Anda ingin mengupgrade ke versi terbaru, Anda hanya perlu mengupdate .env dan membuka PR.
Bahkan gambar AWS untuk amazonlinux yang menyatakan dalam dokumentasi bahwa amazonlinux telah menginstal cli secara default... tidak.
Amazon adalah monopoli dan mereka tahu itu. Mereka tidak perlu peduli?
+1
Saya berakhir di sini saat mencari satu dan menemukan gambar resmi setelahnya, jadi saya akan menempelkannya di sini untuk siapa saja yang menemukan utas ini di masa mendatang.
@Xaeonn Benar, itu adalah gambar Docker AWS CLI resmi baru. Pengembang Amazon baru saja mengumumkan ini tadi malam di #3553, di mana masalah ini sekarang sedang dilacak, seperti yang saya komentari di atas.
instal python, instal pip, instal cli.
Kemudian jalankan
aws
dan dapatkancommand not found
. Sangat sederhana.
:senyum: :laughing: :laughing: classic :100: , selalu membuat hariku menyenangkan
Komentar yang paling membantu
Ini juga berharga di lingkungan CI/CD yang di-docker (seperti pipa Jenkins). Daripada menginstal aws-cli di setiap build, lebih mudah menggunakan image Docker yang dapat di-cache.