#! nedir?
#! ("shebang" diye okunur), Unix'te çoğunlukla Python veya Bash gibi betik dilleri için kullanılan bir gelenektir
- Bunun, çapraz platformda ve farklı Linux dağıtımlarında uygulama dağıtımı için tek bir dosya halinde paketleme amacıyla nasıl kullanıldığına dair bir örnek tanıtılıyor
- Örnek Dockerfile, backend, veritabanı ve UI dahil tam yığın bir sunucuyu tek bir dosyada yapılandırıyor
- Cosmopolitan Libc'ye benziyor, ancak uygulama paketleme için tasarlanmış
Neden kullanılıyor?
Güvenli mi?
Kullanmalı mıyım?
- İsterseniz kullanabilirsiniz.
Performansı iyi mi?
Bakımı yapılabilir mi?
Çalışıyor mu?
Nasıl çalıştırılır?
- Şu komutla çalıştırabilirsiniz:
chmod +x ./Dockerfile ./Dockerfile
- Ardından http://127.0.0.1:8080 adresine gidin.
GN⁺ görüşü
- Bu yazı,
#! (shebang) kullanarak tek bir Dockerfile ile tam yığın bir sunucuyu paketlemenin sıra dışı bir yöntemini tanıtıyor.
- Teknik merakı tetikliyor ve geleneksel uygulama dağıtım yöntemlerine yeni bir yaklaşım sunuyor.
- Bu yöntem bakım ve güvenilirlik açısından önerilmese de, deneysel ve yenilikçi projelerle ilgilenen geliştiriciler için ilgi çekici bir alternatif olabilir.
7 yorum
<<EOFgibi bir heredoc kullanmak için Dockerfile'ın en üstüne# syntax = docker/dockerfile:1.4.0eklemek gerekiyor. Şaşırtıcı olan isesyntax'ın da Docker registry'den çekilmesi.Vay canına... bu yılın en büyük zihinsel şoku bu oldu ahahahahah
Eğlenceli bir yöntemmiş.
Haha... gerçekten çok yaratıcı.
Vay be... Bu gerçekten çok yaratıcı. Sanki betonarme kombinasyonunu keşfetmiş gibi... demek biraz abartı olur ama hoşuma gitti.
#! shebang tam da Dockerfile'da
#yorum karakteri olduğu için böyle bir hilenin işe yaraması da ayrı güzel...Bundan sonra
build-run-test.shgibi ayrı bir dosya yerine bunu Dockerfile'a koymak gerekir sanırım.Bu ilginçmiş. hahaha "Neden kullanılmasın ki?"
Hacker News görüşleri
nix-shellshebang kullanım örneğinix-shellshebang kullanarak, gerekli tüm bağımlılıkları içeren çalıştırılabilir bir betiğin nasıl oluşturulacağı açıklanıyor.chmod +x), belirtilen bağımlılıklara sahip bir çalıştırılabilir dosya haline geliyor./usr/bin/enviçindeki-S/--split-stringseçeneği-Sseçeneği açıklanıyor.Docker ve mimari uyumluluğu
tek dosyalı uygulamalar hakkındaki görüşler
Docker alternatifi olarak Podman ve bubblewrap'ten söz edilmesi
heredoc'lar kullanılarak tek dosyalı proje oluşturma
“tek dosya” takıntısına yönelik eleştiri
kendi kendini tüketen betik deseni
sedile çıkarmanın bir yöntemi açıklanıyor.shebang konumunda
guix shellkullanma yöntemiguix shellkullanan bir örnek veriliyor.kendi kendini derleyen ve çalıştıran Dockerfile