▲GN⁺ 2024-01-15 | parent | ★ favorite | on: Show HN: #!/usr/bin/env docker run(gist.github.com/adtac)Hacker News 의견 nix-shell shebang 사용 예시 nix-shell shebang을 사용하여, 필요한 모든 의존성을 포함한 실행 가능한 스크립트를 만드는 방법을 설명함. 이미지를 50% 축소하는 파이썬 스크립트 예시 제공. 스크립트에 실행 권한을 부여하면(chmod +x), 지정된 의존성을 가진 실행 파일이 됨. /usr/bin/env의 -S / --split-string 옵션 GNU Coreutils 8.30부터 사용 가능한 -S 옵션에 대한 설명. 이 옵션은 표준이 아닌 동작에 의존하며, 모든 텍스트를 실행 파일의 인수로 처리하는 OS에서만 작동함. 대부분의 현대 GNU/Linux, BSDs, macOS에서는 이 비표준 동작이 작동함. Docker와 아키텍처 호환성 Docker가 실제로는 리눅스 외의 다른 플랫폼에서는 리눅스 VM이 필요하다고 지적함. 리눅스 컨테이너는 훌륭하지만, Docker를 진정한 크로스 플랫폼 솔루션으로 보기는 어려움. 단일 파일 애플리케이션에 대한 의견 단일 파일로 전체 애플리케이션을 포함하는 아이디어에 대한 찬사. Docker의 복잡성에 대한 비판과, 보안이나 버전 관리를 위해 컨테이너를 사용하는 것에 대한 의문 제기. WebAssembly(WASM)가 이러한 문제를 해결할 수 있는지에 대한 질문. Docker 대안으로 Podman과 bubblewrap 언급 Docker 대신 Podman이나 bubblewrap을 사용하는 것이 더 나을 수 있음을 언급. Podman은 특정 배포판에 좀 더 의존적이고, bubblewrap은 일부 배포판에서 보안 문제로 포함되지 않을 수 있음. heredocs를 사용한 단일 파일 프로젝트 clever shebang 없이도 heredocs를 사용하여 어떤 언어나 인프라에 대한 단일 파일 프로젝트를 만들 수 있음. bash 스크립트로 패키징된 동일한 앱의 예시를 제공. "단일 파일"에 대한 집착에 대한 비판 모든 것을 하나의 파일로 패키징하는 대신, 디렉토리를 사용하여 자체 포함된 애플리케이션을 만들 수 있음을 지적. 단일 파일로 만드는 것이 반드시 더 나은 방법은 아님을 언급. 자가 소비 스크립트 패턴 스크립트 내부에 다른 인터프리터 스크립트를 포함하고, sed를 사용하여 태그 사이의 스크립트를 추출하는 방법을 설명. 이러한 방법이 때때로 매우 유용할 수 있지만, 복잡해질 수 있음을 인정. guix shell을 shebang 위치에서 사용하는 방법 Guix 매뉴얼에서 가져온 guix shell을 사용한 예시를 제공. 보다 복잡한 환경을 지정하는 매니페스트 파일과 함께 작동함. 자체 빌드 및 실행되는 Dockerfile 2021년 11월에 작성된 자체 빌드 및 실행되는 Dockerfile에 대한 설명과 예시 코드 제공.
Hacker News 의견
nix-shell shebang 사용 예시
nix-shellshebang을 사용하여, 필요한 모든 의존성을 포함한 실행 가능한 스크립트를 만드는 방법을 설명함.chmod +x), 지정된 의존성을 가진 실행 파일이 됨./usr/bin/env의-S/--split-string옵션-S옵션에 대한 설명.Docker와 아키텍처 호환성
단일 파일 애플리케이션에 대한 의견
Docker 대안으로 Podman과 bubblewrap 언급
heredocs를 사용한 단일 파일 프로젝트
"단일 파일"에 대한 집착에 대한 비판
자가 소비 스크립트 패턴
guix shell을 shebang 위치에서 사용하는 방법guix shell을 사용한 예시를 제공.자체 빌드 및 실행되는 Dockerfile