일단 난 윈도우 쓰는 사람이라 WSL2(우분투) 기준이야.

내가 도커를 아예 모르는 건 아닌데 이게 쓰다보면 항상 궁금한 게 있었거든?

나만 이런 궁금한건지 아니면 다른 개발자도 비슷한 생각이나 어려움을 겪는지 궁금해서.


외국사례 찾아봐도 비슷한 질문이나 답은 있는데 명쾌하지가 않더라고.


도커를 쓰는 주 이유는 같은 환경 셋팅이잖아. 최초에 누군가 프로젝트를 만들때는 자기 PC(WSL)에 PHP든 파이썬이든 깔려있다고 치자.

근데 난 이것도 "나는 내 호스트에 강박적으로 아무것도 깔고 싶지 않다"가 되야 진정 도커를 쓰는 의미라고 생각하거든.


내가 라라벨 프로젝트를 할 일이 생겨서 이참에 한 번 위의 상상대로 해보고 싶었어.


그래서 순수하게 WSL2와 도커만 셋팅한 상태로 라라벨 프로젝트를 하나 만들어 보기로 했는데... 뭐 생성은 되지.

도커 컴포즈로 생성하고 볼륨 맞추고 어쩌고 저쩌고 하면 컨테이너 정지시 휘발되는 특성때문에 이것도 스므스하게 된다고는 할 수 없지만 어쨌든 편법을 좀 써가면서 하면 되긴 하더라고.

(특히 node 때문에 애를 좀 많이 먹음)


근데 첫 문제가 명령어 실행때인데, 일단 내 호스트에는 PHP가 깔려있지 않으므로 컨테이너 내부에서 명령어를 실행해야 하는데 artisan 명령어를 수 없이 때려야 하는 라라벨 특성으로 보면 좀 불편하더라고.

그래도 이건 불편사항이니 넘어간다 하더라도.


두 번째 문제가 권한 차이가 발생함. 호스트 계정은 ubuntu 인데 컨테이너는 기본이 root라서 폴더 생성이나 파일 생성 시 권한 충돌이 일어나는데 도커 내부에서 계정 권한을 넣으라고는 하지만 명쾌하지는 않더라고.


세 번째가 VSC에서 작업 할 때 인데 호스트에 PHP가 깔려있지 않으니 디버그 체크가 되지 않아 컨테이너에 접속해서 작업을 해야 하는데 VSC 플러그인이 실행할 때마다 설치를 하더라고. 


네 번째가 이 프로젝트를 공유할 때인데 그럼 공유받은 사람도 위의 세 가지 문제를 또 겪을 수 있다는 말인거 같거든.


혹시 이런 상황을 고민해봤거나 해결한 개발자 있으면 어떻게 풀어갔는지 알려주면 고맙겠어.