Knowhow/Docker

Docker container 내에서 python 개발할 경우, VScode 활용법

침닦는수건 2023. 5. 16. 16:13
반응형

Pycharm만 사용하다가 Docker container 내에서 직접 코딩, 디버깅할 일이 생기니 귀찮은 점이 꽤 많아서 VScode를 쓰기로 했다.

 

Pycharm은 회사에서 쓸 경우, 라이센스 문제도 있고 3.10 이상 버전의 interpreter는 고작 이름 때문에 인식 못해서 사용하지 못하는 문제 등 잡다한 이슈들이 많아 짜증날 때가 있었는데 이 참에 VScode로 확 갈아타는 것이 나을 것 같다. 

 

 

1. VScode 내 extension 설치

VScode를 현재 띄워져있는 컨테이너에 붙이고자 하면 위 extension을 설치해두어야 한다. 예전 이름은 Remote Containers였던 것 같은데 지금은 Dev Containers로 바뀐 듯하다. 

 

Python extension은 기본으로 깔아두어야 한다.

 

2. VScode를 container에 갖다 붙이기

명령 팔레트 (Ctrl + Shift + P )를 열고 대충 attach라고 검색하면 기능이 뜬다. 선택을 하면 띄워져있는 컨테이너 목록이 뜰 것이고 고르면 된다. 

 

그러면 새로운 VScode 창이 열리고 Docker 컨테이너 내 폴더에 붙어있는 것을 볼 수 있다. 

 

이슈

 

이런 오류/경고가 뜰 수도 있는데 권한 문제다. 

 

해결방법은 다음과 같다.

sudo groupadd docker # 보통 이미 되어있음
sudo usermod -aG docker $USER
sudo chown $USER /var/run/docker.sock

 

chmod 777 /var/run/docker.sock과 같이 권한을 전체 공개하는 것 대신 $USER를 소유주로 바꾸는 것이 안전.

 

3. python interpreter 설정하기

 

코드를 실행하면 아마 interpreter가 없다고 오류가 날 것인데, 컨테이너 내에 있는 interpreter를 연결해주어야 한다. 

아까와 같이 명령 팔레트 (Ctrl + Shift + P)를 열고, Python이라고 대충 치면 인터프리터 선택이 뜨는데 컨테이너 내 경로가 보일 것이고 컨테이너 내 python 위치를 지정하면 된다. 

 

혹시 python 위치를 모를 경우, 컨테이너 내에서 python을 켠 뒤, sys.executable로 확인할 수 있다. 

python
>>> import sys
>>> sys.executable
'/opt/conda/bin/python'
>>> exit()

 

끝.

반응형