IntelliJ 에서 Docker 사용하기 - remote interpreter

LEE HANBIN·2022년 8월 2일

Docker

목록 보기
1/2
post-thumbnail

Docker

Docker는 '데이터 또는 프로그램을 격리시키는 기능'을 제공하는 소프트웨어이다. Docker image를 사용하여 container를 생성할 수 있다. Git을 활용해 code를 관리하는 것처럼 Docker를 활용하면 개발환경관리할 수 있다. 이러한 아름다운 기능을 사용하면 협업을 진행할 때, 개발환경을 쉽게 통일할 수 있고, 배포도 복잡한 실행 없이 진행 할 수 있을 것이다.

VSCode에서는 Remote-Container에 attach 하여 쉽게 container 기반으로 코드를 실행할 수 있지만 IntelliJ에서는 그런 기능을 찾지 못했다. IntelliJ에서 VSCode와 유사하게 Docker을 활용하기 위해 삽질한 과정을 기록하고자 한다.




1. DockerFile 을 작성

FROM python:3.10

RUN mkdir /opt/code
RUN pip install --upgrade pip

WORKDIR /opt/code

COPY requirements.txt .
RUN pip install -r requirements.txt

EXPOSE 8080

한 줄씩 살펴보자.

FROM은 특정한 image를 기반으로 새로운 image를 생성하여 build 하겠다는 의미이다.

RUN은 dockerfile로부터 docker image를 build할 때 실행되는 명령어이다.

WORKDIR은 cd와 유사하게 작업 디렉터리를 변경한다.

COPY는 dockerfile을 build 하는 경로에서 docker image로 파일을 복사한다.

EXPOSE는 컨테이너가 open 할 내부 port 번호를 의미한다.

CMD는 위 스크립트에서 사용하지는 않았지만 컨테이너를 실행할 때 실행할 명령어이다.




2. Docker Build

위에서 작성한 dockerfile을 build 할 시간이다.

docker build -t {name:tag} .

현재 경로(.)에 위치한 Dockerfile을 활용하여 image를 build 한다. -t 옵션을 사용할 때 tag는 필수로 적어줄 필요는 없다.




3. Docker Run

이제 Docker image를 실행하여 Container를 만들자.

docker run 
    -it 
    -v {host_path}:{container_path} 
    -p {host_port}:{container_port} 
    --name {container_name} {image_name} /bin/bash

-v는 host와 container 사이의 동기화 할 폴더를 지정하기 위해 사용하는 옵션이다.

-p는 host와 container의 port를 mapping 하는 옵션이다.

-name은 container의 이름을 설정하는 옵션이다.

-it는 컨테이너를 종료하지 않고 계속 실행하기 위한 옵션이다.




4. Remote Python Interpreter with Docker

Docker 컨테이너 내에 존재하는 파이썬 인터프리터를 host의 인터프리터로 사용하려면 추가적인 설정이 필요하다.

  1. Docker가 설치되어있는지 확인

  2. Python 플러그인이 설치되어있는지 확인

  3. File | Project Structure Ctrl+Alt+Shift+S

  4. Project Structure의 Platform Settings에서 SDKs를 선택하고 + 를 클릭하면 팝업 메뉴창이 뜰텐데, Add Python SDK를 선택한다.

  5. Add Python Interpreter이 뜨게 될텐데 Docker을 선택하고 인터프리터로 사용할 Image와 해당 이미지 내의 파이썬 경로를 선택하면 이미지 내의 인터프리터를 사용할 수 있다.

  1. 마지막으로 Run/Debug Configurations에서 Use specified interpreter의 설정값을 5에서 추가한 인터프리터로 변경해주면 된다.



0개의 댓글