ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • VMWare기반 개발 환경을 호스트 OS로 옮겼다.
    문제해결 2021. 10. 21. 18:54

    이전 글

    도커 도입의 필요성

    도커를 도입했다

     

    도커를 윈도우(호스트 OS)에서 실행

    이전에 도커를 도입한 이후로 계속해서 잘 쓰고 있었다. 호스트 OS는 윈도우로 하고, VMWare에 우분투를 설치하고 도커를 사용하고 식이었다. 그러나, VMWare에서 하는 개발은 아무래도 불편한 점이 많았다. 그래서, 생각해보니 윈도우에 WSL2이 있고, 이걸 이용하면 윈도우에서 리눅스를 이미지로 사용하는 도커를 사용할 수 있지 않을까 싶었다. 그래서 시도해봤다.

     

    구체적인 단계를 보기 전에...

    윈도우(호스트 OS)에서 코드를 수정하고 수정된 코드를 빌드할 때만 컨테이너를 열고, 프로젝트를 마운트 해서 빌드할 수도 있다. 이렇게 하면, 윈도우용 도커만 설치하고 빌드 스크립트만 조금 수정해주면 된다. 

     

    그러나, 개발 단계에서 코딩할 때, include하는 외부 참조들의 코드의 선언과 정의를 확인할 수 없다. 이러한 선언과 정의를 알려면 해당 파일을 참조할 수 있어야 하기 때문이다. 예를 들어, #include <linux/....> 이런 코드가 있다면 윈도우(호스트 OS)에서 바로 확인할 방법이 없다. 이렇다면 굳이 VMWare에서 옮겨올 이유도 없을 것이다. 

     

    때문에, VMWare에서의 개발의 불편함을 극복하면서도 개발에 필수적인 요건들(외부 참조를 원활하게 보는 등)을 충족하기 위하여 방법을 찾았다. 여러 문서를 참고 하였다.

     

    실행 단계

    도커 공식 다운로드 페이지에서 다운을 받아 실행하면 된다. WSL2이 설치되지 않았다면, WSL2 설치도 같이한다. 중간에 다음과 같은 창이 뜨는데 링크 눌러서 설치 진행하면 된다. 이후에 "Docker Engine Starting"이란 문구가 몇 분간 계속되는데 기다리면 된다. 여기까지 오면 최소한의 세팅은 된 것 같다.

    설치를 진행하면 된다.

     VS Code 확장으로 도커 컨테이너에 연결하여 개발 지속하기 

    필요한 확장 프로그램은 다음과 같다. Remote - Containers, Remote - WSL, Docker. 세 가지 확장을 설치하고 개발에 사용할 도커 이미지에 소스를 마운트 시켜서 실행한다

    docker run -it -v "마운트할폴더":"도커폴더" 이미지

     이후, VS Code 왼편의 도커 아이콘을 누르면 빈 공간에서 컨테이너가 하나 뜨게 된다.

    빈공간
    생성된 컨테이너

    이제 원격 연결할 수 있는 리스트를 보여주는 아이콘을 누르면 방금 만든 컨테이너를 볼 수 있다.

    연결할 수 있는 컨테이너를 볼 수 있다.

    마우스 우클릭을 하여 컨테이너에 연결해보자.

    누르면 연결을 시도한다.

    연결이 되면 새로운 창이 뜨게 되고, 에러가 나면 오른쪽 아래에 팝업이 뜨며 에러 코드와 메시지를 보여준다.

    연결이 잘 되었다면, 왼쪽 아래에 상태 바가 다음과 같이 변한다.

    성공하면 녹색 배경으로 어느 컨테이너에 연결되었는지 알려준다.

    여기까지 왔다면, 윈도우에서 VS Code를 띄운 상태에서 원격 컨테이너로 연결하여 개발을 할 수 있는 상태가 된 것이다. "ctrl + `"키를 이용하여 터미널을 띄워보면 해당 컨테이너의 터미널이 뜬다.

    연결된 컨테이너의 터미널이 열림

    이후에 개발에 필요한 익스텐션을 새로 설치하고 개발을 진행할 수 있다.

     

    직접 해보니 단점은...

    f12로 선언이나 정의를 찾아 들어갈 때, 호스트 OS인 윈도우에서 바로 하는 것보다 느리다. 개발이 안될 정도로 터무니없이 느린 건 아닌데, 느리다는 게 체감이 된다. 가끔씩은 몇 초 걸리기도 한다. 또한, intellisense도 역시 느리게 동작한다. 확실히 거슬린다.

     

    그리고, 도커 데스크톱이 먹는 메모리가 너무 많다는 점도 있다. 현재 개발 컴퓨터의 램이 16GB인데, 도커 데스크탑을 켜놓고 개발을 하다 보면 반이상 메모리를 차지한다. 찾아보니 꽤 오래전부터 있던 문제인데, wsl설정을 건드리는 수밖에 없는 것 같다.

    도커 데크스톱에서도 wslconfig 파일을 수정하라고 안내한다

    자세한 설정은은 다음 사이트를 참고를 하면 되고, 메모리 설정은 아래와 같다.

    https://docs.microsoft.com/en-us/windows/wsl/wsl-config#configure-global-options-with-wslconfig

    wslconf파일 수정하는법

     

    직접 해보니 장점은...

    위의 단점 빼고는 기억에 남을 정도로 불편한 점은 없는 것 같다. 

    '문제해결' 카테고리의 다른 글

    TOC 만들기  (0) 2023.02.09
    mipsel32 개발 환경 구축  (0) 2021.12.09
    ESP32 write cycles의 중요성  (0) 2021.10.06
    도커를 도입했다.  (0) 2021.08.15
    도커 도입의 필요성  (0) 2021.08.03

    댓글

Designed by Tistory.