Apa itu #!?
#! (dibaca shebang) adalah konvensi yang di Unix umumnya digunakan untuk bahasa skrip seperti Python atau Bash
- Ini memperkenalkan contoh penggunaan untuk memaketkan cara mendistribusikan aplikasi lintas platform dan di berbagai distribusi Linux menjadi satu berkas tunggal
- Contoh Dockerfile menyusun server full-stack lengkap yang mencakup backend, database, dan UI dalam satu berkas tunggal
- Mirip dengan Cosmopolitan Libc, tetapi ditujukan untuk pemaketan aplikasi
Mengapa menggunakannya?
Apakah aman?
Haruskah digunakan?
- Bisa digunakan jika Anda mau.
Apakah performanya bagus?
Apakah bisa dirawat?
Apakah ini bekerja?
Bagaimana cara menjalankannya?
- Dapat dijalankan dengan perintah berikut:
chmod +x ./Dockerfile ./Dockerfile
- Setelah itu, akses alamat http://127.0.0.1:8080.
Opini GN⁺
- Artikel ini memperkenalkan cara unik memaketkan server full-stack ke dalam satu Dockerfile dengan memanfaatkan
#! (shebang).
- Ini membangkitkan rasa ingin tahu teknis dan menawarkan pendekatan baru terhadap cara deployment aplikasi tradisional.
- Pendekatan ini tidak direkomendasikan dari sisi maintainability dan stabilitas, tetapi bisa menjadi alternatif menarik bagi pengembang yang tertarik pada proyek eksperimental dan inovatif.
7 komentar
Untuk menggunakan heredoc seperti
<<EOF, Anda perlu menambahkan# syntax = docker/dockerfile:1.4.0di bagian atas Dockerfile. Menariknya,syntaxjuga diambil dari Docker registry.Wah... ini kejutan mental terbesar tahun ini wkwkwkwkwk
Cara yang menarik.
Haha... benar-benar segar ya.
Wah.. ini benar-benar segar. Rasanya seperti menemukan kombinasi antara besi tulangan dan beton... ya memang agak lebay sih, tapi bagus. #! Kebetulan karena di Dockerfile
#adalah karakter komentar, trik seperti ini ternyata bisa dipakai.. Ke depannya sepertinya lebih baik dimasukkan ke Dockerfile daripada membuat file terpisah sepertibuild-run-test.sh.Ini menarik juga. Hahaha. "Kenapa tidak boleh dipakai?"
Opini Hacker News
Contoh penggunaan shebang
nix-shellnix-shelluntuk membuat skrip yang dapat dijalankan dengan semua dependensi yang dibutuhkan.chmod +x), skrip tersebut menjadi file eksekusi dengan dependensi yang ditentukan.Opsi
-S/--split-stringpada/usr/bin/env-Syang tersedia sejak GNU Coreutils 8.30.Docker dan kompatibilitas arsitektur
Opini tentang aplikasi satu file
Penyebutan Podman dan bubblewrap sebagai alternatif Docker
Proyek satu file dengan heredoc
Kritik terhadap obsesi pada "satu file"
Pola skrip self-consuming
Cara menggunakan
guix shellpada posisi shebangguix shellyang diambil dari manual Guix.Dockerfile yang membangun dan menjalankan dirinya sendiri