Operating System/Linux
[Alpine] 라이브러리 의존성 설치 에러 조치
근육곰돌이
2021. 12. 22. 12:30
728x90
얼마전에 어플리케이션을 가상화하는 작업을 하고 있었습니다.
보통 도커로 많이 사용하니, 그중에 제일 가벼운 alpine-linux로 선택하였습니다.
https://hub.docker.com/_/alpine
프로젝트는 dotnet 5.0으로 수행하였고, alpine 의존성 버그 잡는 과정을 잠시 메모용으로 포스팅 하려고 합니다.
접힌글은 dotnet build 옵션입니다.
더보기
필자의 dotnet build 옵션입니다. (참고만 해주세요)
RUN dotnet publish --runtime alpine-x64 \
--self-contained true /p:PublishTrimmed=true /p:PublishSingleFile=true -c Release -o ./app
1. alpine - dotnet selfcontain된 프로젝트가 so search directory로 발생
--> Error
/bin/sh ./app: not found
--> Solution
apk add libc6-compat
2. alpine - 의존성 라이브러리 미설치로 인한 오류들 조치
--> Error
Error loading shared library libgcc_s.so.1: No such file or directory
--> Solution
# apk add libgcc
--> Error
Error loading shared library libstdc++.so.6: No such file or directory
--> Solution
# apk add libstdc++
(1/1) Installing libstdc++ (10.3.1_git20211027-r0)
OK: 7 MiB in 17 packages
--> Error
Error loading shared library libgssapi_krb5.so.2: No such file or directory (needed by ./app)
--> Solution
# apk add krb5-libs
(1/5) Installing krb5-conf (1.0-r2)
(2/5) Installing libcom_err (1.46.4-r0)
(3/5) Installing keyutils-libs (1.6.3-r0)
(4/5) Installing libverto (0.3.2-r0)
(5/5) Installing krb5-libs (1.19.2-r4)
OK: 10 MiB in 25 packages
--> Error
Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by ./app)
--> Solution
# apk add gcompat
(1/3) Installing musl-obstack (1.2.2-r0)
(2/3) Installing libucontext (1.1-r0)
(3/3) Installing gcompat (1.0.0-r4)
OK: 8 MiB in 20 packages
--> Error
Process terminated. Couldn't find a valid ICU package installed on the system. Set the configuration flag System.Globalization.Invariant to true if you want to run with no globalization support.
--> Solution
# apk add icu-libs
(1/1) Installing icu-libs (69.1-r1)
OK: 42 MiB in 26 packages
- 참고
앞서 해결된 패키지 모은 명령어
apk add icu-libs gcompat krb5-libs libstdc++ libgcc libc6-compat icu-libs
dotnet-sdk docker는 좋지만, 용량이 너무 커서 필자는 alpine을 선택하였습니다.
(최적화를 좋아해서 그렇습니다. ^^;;)
모두들 의존성에서 스트레스 받지 마셔요!!
반응형