Alat pengembang · Docker dijalankan ke konverter penulisan Docker
YAML menemukan file Compose: mengutip, masalah Norwegia, dan 22:22
· Latar belakang
buruh pelabuhan menyusun yaml
File penulisan adalah YAML, dan YAML memiliki opini tentang nilai kosong. Postingan ini menjelaskan aturan penguraian di balik kejutan paling umum dan cara memeriksa YAML yang dibuat atau ditulis tangan untuk kejutan tersebut.
COUNTRY=NO menjadi salah — file Compose meneruskan boolean yang mana aplikasi menginginkan kode dua huruf
COUNTRY=NO menjadi salah — file Compose meneruskan boolean yang mana aplikasi menginginkan kode dua huruf. Bukti: nilai seperti NO dapat diketik ulang oleh parser. Reproduksi keamanan skalar yaml dengan literal sekali pakai. Pasangkan setiap kejadian sumber dengan urutan peta nilai yang dikutip; cadangan pengetikan parser untuk tinjauan tujuan.
Insiden yaml juga mengungkapkan bahwa Batas insiden yaml yang terpisah adalah string numerik heksadesimal dan berbentuk tanggal yang tampak oktal dikutip. Bukti: string numerik heksadesimal berbentuk oktal dan string berbentuk tanggal dikutip. Batasan keamanan skalar yaml ini adalah titik perhentian. Periksa urutan peta nilai yang dikutip tanpa perilaku produksi, lalu dokumentasikan pemeriksaan host untuk pengetikan parser.
YAML 1.1 skalar — bagaimana ya, tidak, hidup, mati, dan NO tanpa tanda kutip menjadi boolean di banyak parser
YAML 1.1 skalar — bagaimana ya, tidak, hidup, mati, dan NO tanpa tanda kutip menjadi boolean di banyak parser. Bukti: dicadangkan ya tidak pada ejaan boolean dan nol yang dikutip. Lacak token keamanan skalar yaml ke dalam urutan peta nilai yang dikutip. Pisahkan nilai yang diurutkan dari bidang nilai terakhir; pengetikan parser berada di luar koleksi.
Batasan mekanisme yaml yang terkait adalah Batas tata bahasa yaml yang terpisah adalah peta menggunakan dua spasi dan array menggunakan item tanda hubung. Bukti: peta menggunakan dua spasi dan array menggunakan item tanda hubung. Gunakan fakta keamanan skalar yaml ini untuk memprediksi satu anggota atau skalar dalam jaringan peta nilai yang dikutip. Periksa peringatan sebelum memutuskan apa pun tentang pengetikan parser.
Port sexagesimal — mengapa 22:22 yang tidak diberi tanda kutip dapat diurai sebagai bilangan bulat 1342 dan mengapa dokumen Compose meminta untuk mengutip port
Port sexagesimal — mengapa 22:22 yang tidak diberi tanda kutip dapat diurai sebagai bilangan bulat 1342 dan mengapa dokumen Compose meminta untuk mengutip port. Bukti: string port titik dua numerik menerima tanda kutip tunggal. Nilai serialisasi keamanan skalar yaml dari modelnya. Mengutip dalam nilai yang dikutip memetakan urutan melindungi tipe tetapi tidak memberikan bukti operasional untuk pengetikan parser.
Pengamatan serialisasi yaml kedua adalah Batas keluaran yaml yang terpisah adalah contoh kutipan YamlString langsung mengungkapkan keputusan penulis. Bukti: contoh kutipan YamlString langsung mengungkapkan keputusan penulis. Output keamanan skalar yaml ini memisahkan pengaturan dari konteks yang tidak tersedia. Jaga agar urutan peta nilai yang dikutip dapat ditinjau dan periksa pengetikan parser secara mandiri.
Angka nol dan oktal di depan — nilai seperti 0755 dan string versi yang YAML ditafsirkan ulang
Angka nol dan oktal di depan — nilai seperti 0755 dan string versi yang YAML ditafsirkan ulang. Berhenti pada pengecualian keamanan skalar yaml alih-alih menebak-nebak. Setiap penambahan di dekat urutan peta nilai yang dikutip memerlukan alasan khusus penerapan yang terkait dengan pengetikan parser.
Kendala pengecualian yaml lainnya adalah Batas pengecualian yaml yang terpisah adalah ekstensi jangkar dan penguraian YAML umum berada di luar serializer ini. Bukti: ekstensi jangkar dan penguraian YAML umum berada di luar serializer ini. Simpan perintah keselamatan skalar yaml asli di samping peringatan. Perbandingan tersebut menunjukkan nilai yang dikutip dalam urutan peta dan keputusan pengetikan parser mana yang tetap manual.
Indentasi dan daftar — konvensi dua spasi, item daftar di bawah kunci, dan bentuk lingkungan peta-versus-daftar:
Indentasi dan daftar — konvensi dua spasi, item daftar di bawah kunci, dan bentuk lingkungan peta-versus-daftar :. Buat contoh keamanan skalar yaml dari nama sintetis. Jadikan setiap nilai yang dikutip memetakan item urutan dapat dilacak tanpa memperlihatkan detail pengetikan parser produksi.
Contoh contoh yaml yang sama menunjukkan bahwa batasan contoh yaml yang terpisah adalah bahwa kutipan defensif hanya melindungi subset yang dipancarkan. Bukti: kutipan defensif hanya melindungi subset yang dipancarkan. Fakta keamanan skalar yaml yang dipasangkan harus terlihat dalam urutan peta nilai yang dikutip. Catat baris itu dan hindari asumsi tentang pengetikan parser.
Contoh praktis: memperbaiki sendiri file yang rusak - menjalankan docker composer config untuk melihat apa yang sebenarnya dihasilkan parser
Contoh praktis: memperbaiki sendiri file yang rusak - menjalankan docker composer config untuk melihat apa yang sebenarnya dihasilkan parser. Terjemahkan konsekuensi keamanan skalar yaml ke dalam satu nilai kutipan yang dapat diamati memetakan perbedaan urutan. Docker memiliki keputusan pengetikan parser yang terakhir.
Implementasi konsekuensi yaml juga menunjukkan batas efek yaml yang terpisah adalah bahwa nilai seperti NO dapat diketik ulang oleh parser. Pisahkan tanggung jawab keamanan skalar yaml: konversi menulis nilai yang dikutip memetakan urutan, repositori menghapus rahasia, dan operator memvalidasi pengetikan parser.
Yang tidak tercakup di sini — YAML jangkar, bidang ekstensi (x-*), dan spesifikasi lengkap YAML 1.2
Yang tidak tercakup di sini — YAML jangkar, bidang ekstensi (x-*), dan spesifikasi lengkap YAML 1.2. Batasi cakupan keamanan skalar yaml pada nilai yang dikutip dari peta cabang urutan yang ditampilkan di sini. Formulir dan default yang berdekatan tidak dapat menjawab pertanyaan pengetikan parser.
Satu lagi batas cakupan yaml yang mengikuti dari Batas batas yaml yang terpisah adalah yang dicadangkan ya tidak, on off, ejaan boolean dan nol dikutip. Perlakukan batas keamanan skalar yaml ini sebagai pengecualian. Lebih memilih urutan peta nilai kutipan yang akurat daripada tebakan tentang pengetikan parser.
Kesimpulan: kutip apa pun yang jelas-jelas bukan string — dan bandingkan YAML tulisan tangan dengan keluaran konverter untuk menangkap nilai kosong
Kesimpulan: kutip apa pun yang jelas-jelas bukan string — dan bandingkan YAML tulisan tangan dengan keluaran konverter untuk menangkap nilai kosong. Audit keamanan skalar yaml sebagai opsi sumber, bidang model, nilai yang dikutip memetakan garis urutan dan peringatan. Hapus rahasia sebelum memeriksa pengetikan parser.
Terakhir, sumber takeaway yaml mengonfirmasi Batas keputusan yaml yang terpisah adalah string port titik dua numerik menerima tanda kutip tunggal. Tutup keamanan skalar yaml secara sempit: urutan peta nilai yang dikutip adalah kandidat; pengetikan parser dan kesetaraan shell bukanlah jaminan.