Alpine에 Ubuntu 또는 Debian 패키지를 설치할 수 있나요?

Alpine에 Ubuntu 또는 Debian 패키지를 설치할 수 있나요?

Alpine이 Ubuntu 또는 Debian 패키지를 설치할 수 있는지 묻고 싶습니다. 나는 Alpine이 musl을 사용하고 Debian이 glibc를 사용한다는 것을 알고 있습니다. 큰 노력 없이도 가능한지 궁금합니다. 이전에 Ubuntu에서 실행 중이던 서버를 Alpine으로 포팅하려고 하는데 Nginx sub_filter가 Alpine 버전의 Nginx에서 사용할 수 없으며 해당 모듈이 필요하다는 것을 깨달았습니다.

답변1

실제로 다음을 .deb사용하여 Alpine에 경량 패키지를 설치할 수 있습니다.dpkg. 그러나 .deb패키지에 의존하는 모든 파일이 필요하므로 이는 매우 간단한 경우에만 작동합니다.

Alpine에서 Debian/Ubuntu 바이너리를 실행할 때의 주요 문제는 실제로 glibc와 musl libc의 비호환성입니다. 이 문제는 여러 수준에서 접근할 수 있습니다.

  1. 더 가벼운 glibc 호환성을 위해 설치해 보세요libc6-compat. 이는 일부 glibc 인터페이스와 스텁을 제공하는 musl을 둘러싼 얇은 래퍼입니다. 그러나 복잡한 glibc 애플리케이션에서는 작동하지 않을 것입니다.

  2. 완전한 glibc 호환성을 위해 @FederalReserve에서 제안한 대로 Alpine 컨테이너에 glibc를 설치할 수 있습니다. 이는 실제로 간단하고 일반적인 프로세스입니다. 예를 참조하세요:도커파일. glibc는 Alpine 이미지에 몇 MB만 추가합니다. 이는 Alpine 기본 이미지 자체가 약 5MB라는 점을 고려하면 상대적으로 많은 양이지만 절대적인 MB 증가 관점에서는 확실히 허용할 수 있습니다.

  3. Alpine에서 로컬로 소프트웨어를 구축해 보세요. 귀하의 경우 Nginx sub_filter에는 모듈이 활성화되어 있습니다. 그러나 Nginx의 경우 얼마나 많은 작업이 필요한지 잘 모르겠습니다(Nginx 빌드 시스템과 모듈을 Alpine Linux로 포팅해야 하는지 여부에 따라 다름). 따라서 이는 단지 제안일 뿐입니다.

관련 정보