xz: 샌드박스 활성화 실패 — Docker 빌드가 서버에서만 실패하는 이유
(dev.to)
Docker 빌드 시 발생하는 xz 샌드박스 활성화 오류의 원인이 서버 커널의 Landlock syscall과 Docker seccomp 프로필 간의 불일치에 있음을 밝히고, 이를 해결하기 위한 구체적인 설정 방법을 제시합니다.
이 글의 핵심 포인트
- 1Docker 빌드 실패의 근본 원인은 xz 압축 도구의 Landlock 샌드박스 활성화 실패임
- 2RHEL, CentOS 등 구버전 커널의 Landlock ABI와 최신 xz 이미지 간의 불일치가 원인임
- 3Docker seccomp 프로필이 해당 syscall을 '지원 안 함(ENOSYS)'이 아닌 '권한 없음(EACCES)'으로 차단하여 발생함
- 4해결을 위해 seccomp 프로필에 Landlock 관련 syscall 허용 규칙을 추가해야 함
- 5BuildKit 엔진은 데몬의 seccomp 프로필을 우회하므로, 해결을 위해 DOCKER_BUILDKIT=0 설정이 필수적임
이 글에 대한 공공지능 분석
왜 중요한가?
인프라 환경(커널 버전)과 컨테이너 이미지(소프트웨어 버전) 간의 미묘한 호환성 문제가 개발 파이프라인 전체를 중단시킬 수 있음을 보여줍니다. 단순한 설정 오류가 아닌, 보안 기능의 충돌로 인한 문제임을 이해하는 것이 핵심입니다.
어떤 배경과 맥락이 있나?
최신 Linux 커널의 Landlock 기술과 이를 활용하려는 최신 소프트웨어(xz), 그리고 이를 제어하는 Docker의 보안 프로필(seccomp)이 복합적으로 얽혀 발생한 문제입니다.
업계에 어떤 영향을 주나?
DevOps 엔지니어와 개발자들에게 '로컬에서는 잘 되는데 서버에서만 안 되는' 전형적인 환경 불일치 사례에 대한 깊은 통찰을 제공하며, 보안 강화가 때로는 시스템 가용성을 해칠 수 있다는 교훈을 줍니다.
한국 시장에 어떤 시사점이 있나?
안정성을 중시하여 구버전 OS(CentOS 등)를 장기간 사용하는 한국 기업 환경에서, 최신 컨테이너 이미지를 도입할 때 발생할 수 있는 잠재적 리스크를 관리하기 위한 인프라 현대화의 필요성을 시사합니다.
이 글에 대한 큐레이터 의견
이 문제는 현대적인 보안 강화 기술(Landlock)이 기존의 레거시 인프라(Old Kernel)와 충돌할 때 발생하는 전형적인 '기술 부채'의 사례입니다. 개발자는 단순히 에러를 우회하는 코드를 작성하는 것을 넘어, 인프라의 하위 계층(Kernel, Seccomp)이 소프트웨어의 보안 요구사항을 충족하는지 면밀히 검토해야 합니다.
물론, 제시된 해결책처럼 seccomp 프로필을 수정하여 보안 기능을 일부 비활성화하는 것은 단기적인 해결책으로서 매우 유용하지만, 이는 보안 수준을 낮추는 트레이드오프를 수반합니다. 따라서 이 해결책을 적용할 때는 반드시 '임시 조치'임을 명시하고, 커널 업데이트를 통한 근본적인 해결 계획을 인프라 운영 문서에 남겨야 합니다. 보안과 가용성 사이의 균형을 잡는 것이 스타트업 운영의 핵심 역량입니다.
관련 뉴스
댓글
아직 댓글이 없습니다. 첫 댓글을 남겨보세요.