Aws-cli: Gambar Docker resmi dengan AWS CLI untuk digunakan dalam skenario CI/CD

Dibuat pada 9 Sep 2018  ·  121Komentar  ·  Sumber: aws/aws-cli

Saya membaca Edisi #3529 dan #3291 dan melihat mereka ditutup, dengan satu-satunya reaksi yang mengisyaratkan bahwa itu 'tidak terlalu rumit'. Namun, komentar itu juga mengakui bahwa melakukan ini sendiri akan berisiko ketinggalan zaman. Terlepas dari poin itu, saya juga ingin menunjukkan bahwa, untuk pengguna komersial, memiliki gambar resmi Amazon sangat disukai daripada "/aws- cli:latest ".

Dalam kasus saya, saya akan menggunakan ini di Google Cloud Build karena jauh lebih unggul daripada AWS CodeBuild.

feature-request

Komentar yang paling membantu

@matti dan @nscavell , Terima kasih telah menindaklanjuti topik ini. Sepertinya ada cukup minat dalam permintaan fitur ini untuk membuat ini tetap terbuka. Masalah ini akan digunakan untuk melacak image Docker resmi untuk AWS CLI. Harap beri +1 untuk menunjukkan minat dan bantu kami memprioritaskan ini.

Terima kasih.

Semua 121 komentar

Saya di sini karena saya juga mencari gambar buruh pelabuhan aws-cli resmi untuk digunakan di lingkungan CI/CD saya. Alih-alih, saya sekarang akan membuat pipa LAIN untuk membangun gambar buruh pelabuhan yang menyertakan aws cli ketika saya bisa mereferensikan yang resmi di pipa asli saya.

Juga... orang lain juga mendapatkannya https://hub.docker.com/r/google/cloud-sdk.

@matti dan @nscavell , Terima kasih telah menindaklanjuti topik ini. Sepertinya ada cukup minat dalam permintaan fitur ini untuk membuat ini tetap terbuka. Masalah ini akan digunakan untuk melacak image Docker resmi untuk AWS CLI. Harap beri +1 untuk menunjukkan minat dan bantu kami memprioritaskan ini.

Terima kasih.

Bukankah +1 dianggap berbahaya ;)

Bagaimanapun ini adalah masalah (?) ketiga yang dibuat tentang ini ...

👍 tambahkan +1 saya

Saya harus membuat gambar buruh pelabuhan saya sendiri untuk hanya memasukkan awsCLI di CI saya. Saya lebih suka yang resmi

+1

+1

+1

+1

+1

+1

+1

+1

+1

+1

Inilah gambar alpine (post fix) dengan cli terbaru yang diinstal untuk orang lain yang mencari versi terbaru untuk sementara waktu.

@ cukup

+1

+1

+1

+1

Alasan lain adalah ketika menggunakan OS seperti coreOS yang tidak memiliki manajemen paket, cara idiomatis menjalankan sesuatu adalah melalui sebuah wadah. Saya terkejut kebutuhan untuk ini bahkan akan dipertanyakan, adalah kelalaian yang jelas. 👍

+1

:+1:

+1

+1

+1

+1

+1

Sebagai pembuka #3291 (yang paling awal dari tiga Isu yang dikutip lol), saya senang melihat bahwa isu ini akhirnya mendapatkan daya tarik. Untuk semua responden di masa mendatang, ketika @justnance mengatakan "Tolong

+1 untuk memberi tahu pemilik repo

+1

Ketika mereka mengatakan kepada +1 suatu masalah, yang mereka maksud adalah mengklik tombol 👍. Itu tidak membantu pengembang untuk memiliki 100 komentar yang masing-masing mengatakan "+1". Semakin banyak yang Anda tahu!

@davidham - Terima kasih telah mengklarifikasi dan semua orang telah menanggapi. Saya kedua itu. Silakan gunakan reaksi GitHub dan klik tombol 👍.

Saya mengatakan hal yang sama 2 hari yang lalu tapi hei kita semua berada di pihak yang sama

+1

+1

+1

+1

+1

+1

+1

Bisakah Anda menghentikan +1? jika Anda ingin memberi +1, lakukan di atas.

Anda membuang-buang waktu insinyur yang berharga. Kami selusin berlangganan masalah ini ...

Saya telah mempertahankan gambar aws-cli selama lebih dari dua tahun sekarang. Jangan ragu untuk menggunakannya jika diperlukan (saya menggunakannya beberapa kali sehari). Saya menerima pembaruan pada rilis versi baru (melalui IFTT) dan mendorong pembaruan dengan cukup cepat. Terlepas dari ketenaran dan kemuliaan menjalankan gambar saya sendiri (ha!), Saya akan _dengan senang hati_ menunda dan mendorong orang-orang untuk menggunakan gambar resmi.

Setelah menggunakan gambar saya untuk waktu yang lama, saya akan mengatakan bahwa akan _super_ membantu jika gambar resmi menyertakan jq (karena API adalah JSON berat). Itu membuatnya sangat nyaman untuk melakukan hal-hal seperti "ambil definisi tugas ECS terbaru, buat perubahan, dan dorong kembali" semua dalam satu tahap pipa CI/CD.

Namun solusi alternatif lain untuk masalah ini: https://hub.docker.com/r/somedeveloper/aws-cli/

Alasan untuk menggunakan:

  • Tetap sederhana.
  • Menggunakan python3.7-stretch resmi sebagai gambar dasar.
  • Menggunakan strategi yang direkomendasikan AWS untuk instalasi -- python + pip. lihat di sini .
  • Termasuk aws-sam-cli untuk para kutu buku Tanpa Server 8-).
  • Ini publik dan tidak memerlukan login.
  • Bagus untuk saluran pipa CI/CD -- belum digunakan untuk hal lain jadi belum mempertimbangkan pro dan kontra.

Masih berharap untuk gambar resmi. Pikirkan tentang orang-orang sekarang

https://hub.docker.com/r/google/cloud-sdk/ . Maaf, teman-teman. Ini adalah tugas yang sulit dilakukan untuk raksasa seperti AWS.

+1

Bukankah +1 dianggap berbahaya ;)

Bagaimanapun ini adalah masalah (?) ketiga yang dibuat tentang ini ...

Keempat, jika Anda mempertimbangkan https://github.com/aws/amazon-linux-docker-images/issues/10.

Tidak bisakah kita memasukkannya ke dalam CircleCI dan menyelesaikannya? Senang membantu dengan Dockerfile atau pipeline.

Saya ingin tahu apakah ada batasan internal dan/atau dokumen di dalam Amazon yang membuat para pengembang menjauh dari menyelesaikan pekerjaan yang tampaknya sepele ini...

k lol

Ada beberapa varian yang bagus untuk dimiliki dalam gambar "resmi". Misalnya, saat ini saya sedang mencari untuk mengambil wadah dengan aws cli dan curl (untuk memeriksa titik akhir metadata IAM) dan akan sangat berguna untuk menemukannya yang bisa saya ambil dan sambungkan ke penerapan k8s saya.

Ada juga alasan keamanan untuk memberikan gambar resmi.

Itu membuat model ancaman lebih sederhana dengan menghilangkan ketergantungan pada "orang acak di internet" yang mempertahankan citra yang digunakan dalam target bernilai tinggi seperti saluran pipa CI/CD yang biasanya memberikan banyak akses ke sistem Anda.

Saya ingin gambar buruh pelabuhan aws-cli resmi berdasarkan dari gambar buruh pelabuhan:18 (stabil saat ini) (https://hub.docker.com/_/docker) - mis. aws-cli-docker-18 karena saya ingin membangun gambar buruh pelabuhan saya di lingkungan CI/CD saya yang saat ini menggunakan gambar docker:18 dan mempublikasikannya ke AWS ECR.

+1

+1

Akan sangat bagus jika orang menahan diri untuk tidak berkomentar ketika komentar mereka tidak berkontribusi pada masalah yang dihadapi. Komentar seperti "+1" hanya memperkenalkan spam untuk pelanggan dan membuat masalah lebih panjang dari yang diperlukan. Sebagai gantinya, berikan acungan jempol untuk komentar pertama masalah ini.

Akan sangat bagus jika orang menahan diri untuk tidak berkomentar ketika komentar mereka tidak berkontribusi pada masalah yang dihadapi. Komentar seperti "+1" hanya memperkenalkan spam untuk pelanggan dan membuat masalah lebih panjang dari yang diperlukan. Sebagai gantinya, berikan acungan jempol untuk komentar pertama masalah ini.

Masalah ini telah terbuka sejak September tahun lalu. Saya pikir kita perlu meminta AWS untuk melihat masalah ini lagi, karena jelas ada minat di dalamnya. Kita harus diberitahu berapa banyak bunga yang "cukup".

karena jelas ada minat di dalamnya

Bukan hanya minat, tetapi juga masalah terbuka dengan lebih banyak :+1: reaksi :

https://github.com/aws/aws-cli/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc

Edisi ke-2 dengan reaksi terbanyak dibuka pada tahun 2014 dan edisi ke-3 pada tahun 2015, sementara edisi ini dibuka pada bulan September 2018 ( kurang dari setahun yang lalu ).

+1000

Saya memiliki masalah di mesin lokal saya sepanjang waktu dengan menyiapkan dependensi yang tepat untuk membuat aws-cli berfungsi. Karena itu saya memutuskan untuk beralih ke aws-cli inside docker. Saya menemukan beberapa gambar yang tersedia untuk umum di docker-hub TETAPI karena tidak resmi, saya tidak mempercayainya secara default sehingga setiap kali ada versi terbaru yang tersedia, saya harus mencari dan menemukan lagi gambar yang dapat dipercaya. dan aman untuk digunakan. Harap AWS membangun, memelihara, dan menyediakan gambar buruh pelabuhan aws-cli yang aman melalui hub buruh pelabuhan. Terima kasih sebelumnya

Ada fragmentasi besar komunitas yang menyediakan gambar aws-cli. Tapi, seperti yang disebutkan sebelumnya: orang akan lebih memilih yang secara resmi dipelihara dan didukung oleh Amazon. Beberapa alasan mengapa:

1) Tidak akan basi -- citra komunitas terkenal karena akhirnya menjadi basi;
2) Lebih aman -- ini dari sumber tepercaya, tidak peduli seberapa tepercaya anggota komunitas, mereka tidak secara resmi mewakili Amazon, oleh karena itu "semua jaminan batal";
3) Dukungan resmi berarti dukungan resmi jika terjadi bug, konflik versi, kompatibilitas mundur, dll.
4) AWS dapat memperbarui gambar mereka saat mereka memperbarui klien aws , termasuk tag historis.

+1

+1 Sangat disayangkan Amazon tidak menyediakan ini

Sejak itu saya menambahkan gambar lain yang berguna. Ini menggabungkan Docker di Docker dengan AWS dan SAM CLI yang menghasilkan integrasi ECR yang sempurna.

dind-aws-cli

+1

Sementara ada banyak gambar tidak resmi di luar sana yang terpelihara dengan baik, apa yang menghentikan mereka suatu hari untuk mengatakan "Pfft, apa gunanya memperbarui ini lagi. Ini adalah pekerjaan Amazon!"

+1

+1

Ketika datang untuk membantu orang mengotomatisasi pekerjaan mereka dengan AWS Amazon gagal besar, ini adalah salah satu alasan kami berpikir untuk meninggalkan mereka.

Apakah ada tanggapan resmi dari pengelola mengenai apakah ini sudah ada di peta jalan atau belum? Seperti banyak orang lain, saya lebih suka menggunakan gambar resmi juga...

+1

Jika ada gambar resmi untuk AWS CLI, itu akan menjadi dudukan yang dapat dieksekusi di dalam wadah awal. Karena itu tidak akan sangat berguna bagi individu, yang terbaik adalah:

  • Gunakan wadah python resmi untuk membangun CLI dari sumber
  • Salin biner AWS CLI yang dihasilkan ke dalam busybox atau wadah awal

Lebih dari itu akan menjadi over-engineering meskipun ada perdebatan yang terjadi di sini.

AWS suka mendemonstrasikan semua layanan ECR dan CodeDeploy-nya. Mengapa mereka tidak mengarahkan semua daya tembak itu ke CLI kemas mereka sendiri?

Karena tawaran di atas meja sepertinya ada pihak dari komunitas yang mempertahankannya.

@balibebas seseorang dari komunitas sudah melakukannya. Ada banyak sekali gambar di luar sana - tetapi intinya di sini adalah bahwa akan ada satu oleh AWS, karena saya tidak ingin menjalankan randomguy/aws-cli:canbechangedanytime di lingkungan CI saya dengan semua rahasia terbuka lebar.

Apa yang akan Anda katakan tentang F-Droid?

ini sama relevannya dengan masalah ini dengan kucing ini:

Anda terdengar seperti pelanggan yang membayar.

yah mungkin itu karena _I_ _am_

Berkhotbah kepada paduan suara. Pokoknya formula Brew memiliki peluang yang lebih baik karena sudah di-trol lebih lama, masih tanpa gerakan. Jadi foto kucing menjadi kontra produktif ketika tidak ada kasus penggunaan umum di luar mungkin wadah goresan atau busybox seperti yang saya tunjukkan sebelumnya. Apa proposal desain Anda?

saya dan banyak lainnya sedang melakukan "wadah kotak sibuk" misalnya untuk menjalankannya dengan buruh pelabuhan untuk mendapatkan kredensial autentikasi ECR. mengingat berapa banyak barang buruh pelabuhan yang dimiliki aws, tidak masuk akal bahwa kemasan resmi tidak ada.

Mungkin mereka hanya ke sesuatu yang lain. ;)

Saya senang kami menyelesaikannya sekarang. Kembali ke +1 komentar:

+1 untuk Dockerless

@matti @balibebas Perlu diingat bahwa saat ini hanya ada 64 orang dalam percakapan edisi ini, dan setiap respons memicu email dan notifikasi yang tidak membantu yang berpotensi dikirim ke setiap 64 orang dan lebih yang berlangganan. Pesan ini akan melakukan hal yang sama, dan saya minta maaf untuk itu.

Tapi sungguh, tolong jaga semuanya tetap profesional. Sementara gambar kucing bagus, semakin jauh utas ini keluar dari rel, saya merasa semakin kecil kemungkinannya untuk dianggap serius oleh pengelola. Sayangnya, spam adalah spam adalah spam.

Itulah yang dilakukan tombol berhenti berlangganan, yang baru saja saya klik.

Itu akan menjadi hal yang baik untuk dimiliki. Saya hanya terkejut bahwa tidak ada tindakan yang diambil atau dipertahankan (termasuk dikatakan TIDAK).
Bagaimanapun orang-orang di atas telah dengan tepat menunjukkan pentingnya gambar cli aws resmi.
Saya pikir orang-orang sudah menggunakan rute mereka sendiri secara pribadi atau melalui gambar/pengelola paket milik orang lain, dll.
Namun Contoh Skrip Lain untuk hal yang sama

Tetapi masalah yang paling sederhana & tidak dapat dihindari tetap sama.

  • Daftar ketergantungan & ketidakpastian yang tidak pernah berakhir yang muncul jika bergantung pada pengembang untuk mengintegrasikan berbagai hal sendiri. Pada akhirnya akan menyebabkan lebih banyak masalah dalam repo karena orang akan mulai dengan menginstal satu hal kemudian yang lain dan kemudian beberapa lainnya untuk menyelesaikan pekerjaan yang mencemari lingkungan yang mengalahkan tujuan CI/CD atau karya serupa yang diisolasi & murni.
  • Sulit dipercaya untuk mengimplementasikan & melacak gambar buruh pelabuhan orang lain untuk pekerjaan Anda. Ini mengarah pada pembuatan tambahan pipa & entri lain di registri buruh pelabuhan untuk gambar awscli baru, repositori lain yaitu hal lain yang harus dipertahankan.
  • Di CI/CD, preferensi saya adalah hanya menggunakan gambar (internal atau resmi kami) & untuk menghindari baris skrip untuk menambahkan hal-hal sebanyak mungkin.
  • Masalah dengan build & libs karena gambar resmi dapat langsung dibuat dari rilis sumber itu sendiri & memiliki ketergantungan yang kurang dinamis dengan manajer paket & apa yang tidak.

kalau tidak
=> Semua orang akhirnya membuat sendiri.

sama di sini, saat ini saya menggunakan gambar buatan sendiri, tetapi lebih memilih gambar resmi di bawah

ruang nama. Saya menggunakannya untuk membuat gambar buruh pelabuhan lain dan mendorongnya ke ECR, di mana awscli diperlukan untuk mendapatkan kredensial.

FROM docker:18.06

RUN apk update && \
apk -Uuv add python py-pip && \
pip install awscli && \
apk --purge -v del py-pip && \
rm /var/cache/apk/*

Seharusnya bukan masalah besar untuk menambahkan ini ke pipa build awscli Anda ... :)

--

saya telah memperbarui Dockerfile sesuai dengan saran @ mikesir87 , thx untuk itu (itulah alasan lain untuk memiliki gambar standar dengan kontribusi komunitas untuk mendapatkan gambar terkecil)

Maaf untuk mengirim spam ke semua orang, tetapi ingin menunjukkan (jika ada orang lain yang ingin menggunakan cuplikan dari @jens-meiss) bahwa Anda harus _benar-benar_ mempertimbangkan untuk merangkai tiga pernyataan RUN menjadi satu pernyataan. Jika tidak, Anda masih mengirimkan konten py-pip dan cache apk di lapisan perantara, meskipun penampung terakhir Anda tidak dapat mengaksesnya.

Pada catatan lain, komentar memunculkan kasus penggunaan lain yang valid... ketika Anda menggunakan aws-cli hanya untuk mendapatkan kredensial bagi ECR untuk mendorong gambar. Ini terdengar seperti kebutuhan untuk mengemas penolong kredensial ECR dalam sebuah gambar juga. Itu pasti akan memudahkan untuk membangun dan mendorong gambar tanpa memerlukan aws-cli penuh.

Halo semuanya, pengelola di sini. Hanya ingin mengklarifikasi, ini sedang terjadi, kami melakukan ini.

Kami sedang dalam proses membangun infrastruktur rilis yang lebih baik secara internal untuk dapat membangun/menguji/mendukung lebih banyak jenis artefak rilis, terutama karena kami akan mengirimkan lebih banyak artefak rilis untuk cli v2.

Kami tidak memiliki garis waktu yang tepat saat ini, tetapi itu sedang terjadi.

Hal yang mudah dilakukan menurut pengembang amazon dan banyak lainnya, namun masih menunggu setelah 2 tahun dan tidak ada ETA 😂

+1

Infrastruktur rilis internal (Q4) 2019
penilaian tim hukum (2020 Q1)
beta publik di bawah aws/cli-dev-test (2020 Q2)
rilis final (2020 Q3)

Dalam timeline yang optimis ini, Anda akan mendapatkan apa yang Anda inginkan dalam waktu kurang dari 10 bulan. 🥇

menunggu posting blog jeff barrs

Aku menunggu ini.

Bisakah kita setidaknya mendapatkan pengumuman resmi atau komitmen. Mungkin rilis target?

@bhmckendrick adalah komitmen tidak persis seperti apa komentar ini tidak terlalu jauh di atas milik Anda?

https://github.com/aws/aws-cli/issues/3553#issuecomment -519280276

lebih dari setahun dan tidak ada pembaruan? Gambar?

hai @jamesls , apakah Anda akan mempertimbangkan untuk mengunci utas ini sampai Anda memiliki sesuatu untuk dibagikan?

jumlah orang yang sama sekali tidak mau membaca ( petunjuk petunjuk ) dan malah memilih untuk mengirim spam ke 70+ pengamat tentang bagaimana mereka _secara khusus_ terganggu, saya yakin, secara drastis menurunkan minat semua orang untuk mengikuti utas ini.

juga, terima kasih atas upaya Anda mewujudkan ini!

Sebagai penulis asli masalah ini (yah, saya cukup berani untuk menyalin/menempelkan "wontfix" yang sebelumnya ditutup) Saya sudah berhenti berlangganan dari masalah ini karena spam +1 besar-besaran dan sesekali berkelahi dengan gambar kucing (maaf) .

Sesuaikan saja pengaturan notifikasi agar Anda hanya mendapatkan notifikasi jika masalah ini sudah ditutup.

Saya hanya ingin menunjukkan bahwa selain dari CI/CD, beberapa pengembang (lihat @LongLiveCHIEF), lebih suka memiliki lingkungan pengembangan docker, dan tidak suka menginstal sesuatu secara asli, atau harus berurusan dengan manajer versi berikutnya untuk bahasa asli yang pasti diandalkan oleh alat cli itu.

Lebih mudah untuk docker pull aws-cli daripada apa pun langkah penginstalan yang ada... belum lagi jika Anda bukan pengembang python, Anda memiliki overhead untuk menyiapkan versi dan lingkungan python yang baik untuk pengguna Anda, atau mungkin bahkan setiap proyek.

Skalakan itu ke semua alat berbeda yang mungkin digunakan pengembang (cli berbasis ruby, cli berbasis node), dan Anda harus mempelajari pengaturan lingkungan untuk bahasa yang mungkin tidak pernah Anda kodekan.

Maksud saya di sini adalah bahwa docker run ada di mana-mana, dan menghilangkan pengaturan/konfigurasi bahasa asli, dan mempermudah pengguna.

Bahkan jika pengguna membuat gambar buruh pelabuhan mereka sendiri, mereka masih harus berjuang dengan tugas pengaturan tersebut.

Saya tidak membuat kode dengan python, tetapi saya dipaksa untuk mempelajari seluk beluk lingkungan virtual dan praktik terbaik mereka dari berbagai versi python, murni karena penyedia alat menganggapnya "sepele".

Tidak semua pengembang memiliki latar belakang yang sama dengan pembuat alat, dan memberikan gambar buruh pelabuhan adalah tanda hormat. Penyedia alat dapat mengatasi masalah lingkungan khusus bahasa asli dengan sangat cepat dan mudah, sedangkan pengadopsi harus menghabiskan lebih banyak waktu untuk mengelola biaya tambahan ini melalui berbagai tahap siklus hidup pengembangan dengan produk Anda.

Makanan untuk sekalipun.

@jamesls Terima kasih telah mendengarkan umpan balik komunitas di sini. Sambil menunggu gambar buruh pelabuhan yang dihosting secara resmi, langkah perantara yang bermanfaat mungkin adalah memposting rekomendasi pemasangan untuk beberapa gambar buruh pelabuhan dasar yang populer di sini (mis. node, alpine, ubuntu, amazon2, python). Ini akan segera berharga bagi kami.

Saat saya bekerja untuk perusahaan besar, izinkan saya melayani Anda dengan ini:
https://github.com/aws/aws-codebuild-docker-images
https://hub.docker.com/r/amazon/aws-codebuild-local

Ini sepertinya tidak terawat dengan baik, tapi ini yang lain

https://hub.docker.com/r/amazon/lambda-build-node10.x

Saya baru saja melihat ini di alam liar: https://hub.docker.com/r/amazon/aws-cli

Sepertinya akhirnya sampai juga :)

@pablosjv itu bukan gambar resmi atau bersertifikat. Sadarilah itu.

@anjakammer Sepertinya itu gambar amazon resmi , meskipun itu bukan gambar resmi yang diterbitkan oleh Docker .

Saya tidak tahu apakah ini sudah siap produksi, karena mereka belum mengatakan apa-apa dalam masalah ini.

Penasaran bagaimana gambar AWS ini berukuran 98,42 MB sedangkan yang lain (misalnya atlassian/pipelines-awscli ) jauh lebih kecil.

Anggota tim CLI di sini. Ya, saya dapat mengonfirmasi bahwa kami telah secara resmi meluncurkan image Docker untuk AWS CLI v2! Saya sarankan membaca yang berikut ini:

Saya akan menutup masalah ini. Jika Anda memiliki umpan balik atau pertanyaan tentang gambar, silakan buka masalah GitHub lain di repositori ini.

Sebagai pembuka edisi asli #3291, bertahun-tahun yang lalu, rasa sakit saya ❤️ dipenuhi dengan kegembiraan melihat kekhawatiran saya akhirnya divalidasi, dan gambar Docker resmi sekarang tersedia. Potret tentang berapa lama waktu yang dibutuhkan untuk mengesampingkan gambar ini, saya yakin ini jauh lebih mudah diucapkan daripada dilakukan, jadi terima kasih banyak kepada para pengembang Amazon yang membuat ini terjadi. Anda semua melakukan pekerjaan yang sangat baik. 👏🎉👏

_Oke Alexa, saya berterima kasih kepada mereka, tolong biarkan keluarga saya pergi sekarang._

Apakah Dockerfile tersedia di mana saja?

@zerkms Aha, menemukannya di cabang v2 :
https://github.com/aws/aws-cli/blob/v2/docker/Dockerfile

Saya kira mereka akhirnya melakukannya, tetapi saya tidak bisa menjalankannya di Gitlab CI https://hub.docker.com/r/amazon/aws-cli

Saya malah menggunakan gambar buruh pelabuhan AWS CLI Gitlab, dan itu bekerja dengan sempurna. Gunakan saja

image: registry.gitlab.com/gitlab-org/cloud-deploy:latest

MEMPERBARUI:

Gambar di atas tidak digunakan lagi, gunakan yang baru sebagai gantinya.

image: registry.gitlab.com/gitlab-org/cloud-deploy/aws-base:latest

Perhatikan bahwa untuk menggunakan gambar di GitLab CI, Anda perlu menyetel titik masuk kosong secara manual, karena gambar amazon/aws-cli menyetel titik masuk ke /usr/local/bin/aws . Sebuah contoh...

image:
    name: amazon/aws-cli
    entrypoint: [""]

@mikesir87 kenapa begitu?

@pSnehanshu Saya pikir itu karena Anda menjalankan gambar seolah-olah itu adalah cli itu sendiri, seperti docker run --rm amazon/aws-cli <<command>> , yang akan mirip dengan menjalankan cli dengan aws <<command>> , bukannya docker run --rm amazon/aws-cli aws <<command>> . Ada pro dan kontra dengan setiap pendekatan, tergantung pada apa yang Anda sukai, dan cara Anda menjalankan gambar, tetapi mengesampingkan titik masuk harus tetap berhasil.

@lucasbasquerotto Saya tetap memilih gambar Gitlab. Bagaimanapun, terima kasih atas penjelasannya.

Jika ada yang masih tertarik untuk membuat AWS CLI v2 bekerja di Alpine Linux, berikut adalah contoh Dockerfile:

FROM alpine:3.11 AS builder

ENV GLIBC_VER=2.31-r0

# install glibc compatibility for alpine
RUN apk add --no-cache --virtual .build-deps \
        binutils \
        curl
RUN curl -sL https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub -o /etc/apk/keys/sgerrand.rsa.pub
RUN curl -sLO https://github.com/sgerrand/alpine-pkg-glibc/releases/download/${GLIBC_VER}/glibc-${GLIBC_VER}.apk
RUN curl -sLO https://github.com/sgerrand/alpine-pkg-glibc/releases/download/${GLIBC_VER}/glibc-bin-${GLIBC_VER}.apk
RUN apk add --no-cache \
        glibc-${GLIBC_VER}.apk \
        glibc-bin-${GLIBC_VER}.apk

# install AWS CLI
RUN curl -sL https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip -o awscliv2.zip
RUN unzip awscliv2.zip
RUN aws/install

FROM alpine:3.11
MAINTAINER Barry Lagerweij
RUN apk --update --no-cache --virtual .build-deps add \
    groff \
    && rm -rf /var/cache/apk/*
COPY --from=builder /usr/local/aws-cli/ /usr/local/aws-cli/
COPY --from=builder /usr/local/bin/ /usr/local/bin/
COPY --from=builder /usr/lib/ /usr/lib/
COPY --from=builder /lib64 /lib64
COPY --from=builder /usr/glibc-compat/ /usr/glibc-compat/
COPY --from=builder /lib/ld-linux-x86-64.so.2 /lib/

Masalahnya adalah AWS CLI v2 menggunakan GLIBC, tetapi Alpine Linux memiliki dukungan GLIBC yang terbatas (menggunakan 'musl', alternatif yang ringan). Dockerfile di atas menginstal pustaka glibc yang hilang, dan menggunakan Dockerfile multi-tahap untuk menjaga gambar akhir tetap kecil. Dengan sedikit usaha, kita mungkin dapat mengurangi ukuran gambar lebih jauh dengan hanya memasukkan file dari /usr/lib yang benar-benar diperlukan.

Setelah beberapa refactoring, saya berhasil mengurangi ukuran gambar lebih jauh:

FROM alpine:3.11

ENV GLIBC_VER=2.31-r0

# install glibc compatibility for alpine
RUN apk --no-cache add \
        binutils \
        curl \
    && curl -sL https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub -o /etc/apk/keys/sgerrand.rsa.pub \
    && curl -sLO https://github.com/sgerrand/alpine-pkg-glibc/releases/download/${GLIBC_VER}/glibc-${GLIBC_VER}.apk \
    && curl -sLO https://github.com/sgerrand/alpine-pkg-glibc/releases/download/${GLIBC_VER}/glibc-bin-${GLIBC_VER}.apk \
    && apk add --no-cache \
        glibc-${GLIBC_VER}.apk \
        glibc-bin-${GLIBC_VER}.apk \
    && curl -sL https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip -o awscliv2.zip \
    && unzip awscliv2.zip \
    && aws/install \
    && rm -rf \
        awscliv2.zip \
        aws \
        /usr/local/aws-cli/v2/*/dist/aws_completer \
        /usr/local/aws-cli/v2/*/dist/awscli/data/ac.index \
        /usr/local/aws-cli/v2/*/dist/awscli/examples \
    && apk --no-cache del \
        binutils \
        curl \
    && rm glibc-${GLIBC_VER}.apk \
    && rm glibc-bin-${GLIBC_VER}.apk \
    && rm -rf /var/cache/apk/*

Indeks pelengkapan otomatis dan file contoh dihapus, dan juga 'groff' dihapus (saya berasumsi orang tidak memerlukan halaman bantuan dalam gambar Docker mereka)

Ini sangat sederhana, https://github.com/flaccid/docker-awscli/blob/master/Dockerfile dan melakukan pekerjaan itu tetapi beri tahu saya melalui masalah github saya jika ada hal lain yang diperlukan dalam gambar (kasus penggunaan yang valid).

Ini sangat sederhana, https://github.com/flaccid/docker-awscli/blob/master/Dockerfile dan melakukan pekerjaan itu tetapi beri tahu saya melalui masalah github saya jika ada hal lain yang diperlukan dalam gambar (kasus penggunaan yang valid).

APK di atas didasarkan pada AWS-CLI 1.18, bukan pada CLI v2.

Adakah kemungkinan Amazon akan mempertimbangkan untuk membuat gambar dengan CLI versi 1?

@keeganwitt Anda harus membuka Masalah baru untuk permintaan itu. :+1:

Apakah halaman ini membantu?
0 / 5 - 0 peringkat