본문 바로가기
Python

Docker을 이용한 Python 개발환경 구축

by heekng 2021. 9. 2.
반응형

Docker을 이용한 Python 개발환경 구축

😨 파이썬...?


스프링을 이용하는 자바개발자이기에 파이썬은 사용할 일이 없을 줄 알았다...

하지만 파이썬은 역시 모든 개발분야에 들어갈 수 있는 언어인가 보다.

업무 중 대량의 데이터를 insert하는 배치파일을 만들다 보니 아무래도 간략하고 쉽게 코드를 짤 수 있는 파이썬을 이용하게 되었다.

자바보다 훨씬 간단한 코드와 import를 통한 개발환경은 자바만 이용했던 나에게는 충분히 매력적이었다.

회사 컴퓨터의 OS는 윈도우지만 개인적으로 계속 파이썬 공부를 하기 위해 M1 mac에 파이썬 개발환경을 구축하기로 했다.

🐳 도커를 이용한 개발환경 구축


도커는 리눅스 응용프로그램이며, 프로그램이나 개발 환경을 컨테이너로 관리한다. 또한 배포와 관리를 쉽게 할 수 있도록 도와주는 도구이다.

개발환경은 프로그램이 성장하며 패키지 등이 늘어나면서 의존관계에서 충돌이 날 수 있기에 도커를 사용한다.

도커가 배포에 활용적이라는 것을 이제서야 알게 되어 리눅스와 도커 공부를 시작하며, 간단하게 파이썬 환경만 구축하는 방법을 소개한다.

💡
이 포스트는 m1 mac 환경에서 작성되었습니다. 윈도우의 경우 WSL2를 이용해 가상 리눅스 환경에서 이용하실 수 있습니다.

1. 도커 설치


Get Started with Docker | Docker
Learn about the complete container solution provided by Docker. Find information for developers, IT operations, and business executives.
https://www.docker.com/get-started

위 링크를 통해 자신의 os에 맞는 도커 데스크탑을 설치한다.

또는 homebrew를 이용하여 설치한다.

brew cask install docker

이후 버전 확인하여 정상적으로 출력되면 설치 완료

>> 입력
docker -v
<< 출력
Docker version 20.10.8, build 3967b7d

2. 이미지 생성


  1. 프로젝트 디렉토리 생성 및 이동
  1. Dokerfile생성
>> 입력
vi Dockerfile

>> Dockerfile 작성
FROM python:3.7-slim

COPY ./requirements.txt ./

RUN pip install -r ./requirements.txt

Dockerfile에 접근하여 도커 이미지 빌드를 위한 명령어를 작성하고 저장한다.

  1. requirements.txt 파일 생성
>> 입력
vi requirements.txt

>> requirements.txt 작성
PyMySQL==0.7.4
Selenium

이용을 원하는 패키지를 입력하고 저장한다.

  1. 도커파일 빌드
docker build --tag [태그명] .

별다른 문제가 없다면 빌드가 끝까지 진행된다.

  1. 이미지 확인
docker images

위 명령어를 통해 도커에 빌드된 이미지를 확인할 수 있다.

3. pycharm에서 프로젝트 시작


  1. 파이참에서 Dockerfile을 생성했던 프로젝트 디렉토리를 open한다.
  1. 생성한 도커 이미지를 설정한다.
Preferences > Project:[프로젝트명] > Python Interpreter
우측 상단 톱니바퀴 > add > Docker > ImageName에서 생성한 도커 이미지 선택 > OK 내가 선택한 패키지 리스트 확인 > Apply > Ok

4. HelloWorld 테스트


프로젝트 디렉토리 안에서 파이썬 파일 생성 후 코드 실행

print("helloWorld!")

정상 출력 확인!

💡
docker ps 명령어로 현재 올라간 컨테이너 리스트를 확인할 수 있다. 현재 구성한 환경에서는 파이썬 프로그램이 실행될 때에만 docker ps 명령어로 컨테이너가 띄워지므로 run이 모두 끝났을 때에는 확인할 수 없다.

5. 모듈(패키지) 추가


  1. 기존의 requirements.txt파일에 원하는 모듈(패키지)를 추가하여 저장
  1. 빌드
docker build --tag [기존에 사용하던 태그명] .
  1. Interpreter 창 확인하면 끝!

반응형