Jadi tujuan utamanya adalah untuk merakit aplikasi botol lemak dan memasukkannya ke dalam Elasticbeanstalk. Masalahnya ada pada konteksnya. Agak bodoh untuk menambahkan begitu banyak konteks ke buruh pelabuhan jika yang saya butuhkan sebenarnya adalah satu file jar.
Saya telah bermain-main dengan file .dockerignore, tapi saya tersesat. Saya mencoba menggunakan negasi gitignore, tetapi tidak berhasil.
*
!Dockerfile
*/
!target/
target/*
!target/*.jar
Ada juga yang namanya regex, tapi sepertinya regex yang rumit tidak didukung.
^((?!Dockerfile).)*$
Saya juga mencoba mencari di stackoverflow, dan hanya dua yang saya temukan ini:
Pertanyaan ini mungkin mirip dengan yang kedua, tapi menurut saya ini sedikit berbeda karena di sini, saya hanya ingin memasukkan satu file ke dalam konteks.
Bantuan apa pun akan dihargai.
Jawaban:
Jika Anda perlu mengabaikan semuanya kecuali beberapa direktori atau file dan juga mengabaikan beberapa file yang tidak perlu di dalam direktori yang diizinkan, Anda dapat menggunakan
.dockerignore
file berikut :sumber
*
di baris pertama (bukan**
). Kutipan: "Anda mungkin ingin menentukan file mana yang akan disertakan dalam konteks, daripada yang akan dikecualikan. Untuk mencapai ini, tentukan*
sebagai pola pertama, diikuti dengan satu atau beberapa!
pola pengecualian".Dari referensi dockerfile :
Jadi baris yang berisi ** akan mengabaikan semua yang ada di direktori yang sama dengan Dockerfile.
Seperti yang diharapkan, tanda seru kemudian dapat digunakan untuk mereferensikan file apa pun yang ingin Anda kirim ke daemon buruh pelabuhan.
sumber
**
pergi ke bagian atas file, jika tidak, pengecualian akan diabaikan. Docker menggunakan aturan terakhir yang cocok sebagai aturan "terakhir", jadi jika**
yang terakhir akan cocok dengan semuanya.**
di baris pertama dan!foo
di baris berikutnya jikafoo
satu-satunya file yang ingin Anda sertakan.Ini mungkin terdengar aneh, tetapi jika yang Anda butuhkan hanyalah satu file jar, Anda dapat membuat folder "buruh pelabuhan" di sistem build Anda yang berisi Dockerfile Anda. Saat Anda menjalankan build, minta skrip build menyalin file jar tunggal ke "buruh pelabuhan" lalu jalankan build image buruh pelabuhan (dari dalam folder "buruh pelabuhan") dan dorong ke registri buruh pelabuhan Anda setelah selesai.
sumber