[OS Con] backend.ai 지원동기

SangHun·2021년 7월 6일
0

오픈소스 컨트리뷰톤 지원

오픈소스 컨트리뷰톤 멘티 모집이 시작되었다!
관심가는 프로젝트 중 하나인 backend.ai는 지원자에게 과제를 내주었다.

개인적으로 마음에 드는 과제다.
실제로 새로운 프로젝트에 참여할 때, 많은 시간이 소모되는 부분이 환경 설정이다.
이를 미리 해보면서 실제 프로젝트에 참여할 때의 허들을 낮추고,
지원자의 실력이나 태도를 확인해볼 수도 있다.

결과

결론적으로는 구성을 완료했다.
어쩌저찌 README파일을 읽어가며 완성...

어떻게 했는고? 하니,

도커를 직접 만들어서 진행했다.
현재 내 개발용 장비는 맥북인데, 여기서는 pyenv로 파이썬 버전을 관리한다.
개인적으로 마음에 들지 않는 방식이고 pyenv 설정이 한 번 엉켜본 적이 있어서
개발환경을 분리하고자 도커로 설정했다.
현재 내가 일하는 회사에서도 직접 개발환경의 도커화를 진행하고 있기 때문에 큰 어려움은 없었다.

진행...

진행에 큰 어려움이 없었다고 하지만 처음에 난관에 봉착했었다.

Dockerfile의 파이썬 이미지를 처음에 alpine 버전으로 설정했었는데,
이 때문에 pip 패키지를 설치할 때 문제가 생겼었다...

스크린샷을 찍어놓지 않았지만, 그 때 발생한 에러는 대강 아래와 같았다.

ERROR: Could not build wheels for [some], [packages] which use PEP 517 and cannot be installed directly

이는 alpine 버전에서 사용되는 musl libc 때문에 발생했던 에러로 예상된다.
minimal한 C library를 사용하다보니, 여러 추가 패키지를 설치하기에 충분한 dependency가 없었고 이 때문에 위와 같은 Cannot build wheels 에러 터진 것으로 추측된다.

파이썬 이미지를 alpine 버전에서 buster 버전으로 바꾼 뒤에는 아무 문제 없이 패키지가 설치되었다.

삽질

파이썬 이미지에 문제가 있다는 걸 알기 전에는 PEP 517을 파고들었다.
특정 패키지들만 저 PEP 517을 사용하기 때문에 계속 설치되지 않았기 때문에, 이 문제만 해결하면 되리라 생각했었다...

pip issue를 뒤적이기도 했고,
pip 공식 문서를 뒤적이기도 했다.
필요하다고 여겨지는 바이너리 파일을 설치해보기도 하고 pip install 옵션에 이것저것 붙여보기도 했지만 실패...

빌드 과정 로그를 죽 훑어보고 어디선가 얼핏 들은 파이썬 alpine 버전에 대한 설명이 뇌리를 스쳐지나가며,
이미지를 바꿔보게 되었고 결국 성공하게 되었다...!

profile
개발괴발자

0개의 댓글