IntelliJ와 docker-compose를 사용하여 로컬 환경을 더럽히지 않고 flask + postgresql 환경 구축

동기와 개요



IntelliJ+Docker로 local을 더럽히지 않고 개발 」를 참고로 하겠습니다.

환경




소프트웨어
버전


Windows 10 Professional
-

IntelliJ Ultimate
2020.3

docker desktop community
2.5.0.1


전제 조건


  • docker for windows가 설치되었습니다
  • IntelliJ에 다음 플러그인이 설치됨
  • docker 플러그인
  • Python 플러그인

  • docker hub에 계정 등록됨
  • IntelliJ에 docker for windows 설정 완료

  • 작업 개요



    작업이지만 푹 아래 아래가됩니다.
  • docker 명령을 사용하여 docker python 이미지에서 flask를 포함하는 이미지 만들기 (※)
  • docker-compose yaml 파일 만들기
  • IntelliJ의 SDK에 2로 만든 yaml을 지정
  • flask

  • docker-compose를 아는 분이라면,
    "1.과 2.의 순서를 나눌 필요는 없을까? 2.의 docker-compose에 정리하면 좋지 않을까."
    라고 생각될지도 모릅니다만, IntelliJ의 사양인가, 2.에 정리하면 에러를 토해 버려 실행할 수 없었습니다.

    1. docker 명령을 사용하여 docker의 python 이미지에서 flask가 포함 된 이미지 만들기



    Dockerfile은 다음.
    파이썬 이미지에 flask를 설치하기 위해 pip 명령을 실행하고
    pip에 전달할 모듈 목록 (requirements.txt) 파일을 만듭니다.

    Dockerfile
    FROM python:3
    
    LABEL version="1.0"
    LABEL description="Python Flask"
    
    WORKDIR /usr/src/app
    COPY requirements.txt ./
    RUN pip install --no-cache-dir -r requirements.txt
    

    requirements.txt
    # flask
    flask
    flask_sqlalchemy
    # psycopg2 : postgresql driver
    psycopg2-binary
    psycopg2
    

    위의 파일을 적절한 폴더에 저장하면 명령 프롬프트를 시작하고
    폴더에서 아래의 docker build 명령을 실행하고 flask가 설치되었습니다.
    파이썬 이미지를 만듭니다.
    > docker build -t <docker hubのアカウント名>/pythonflaskcheck .
    

    2. docker-compose yaml 파일 만들기



    적절한 폴더에 아래의 docker-compose.yml 파일을 만듭니다.

    docker-compose.yml
    version: '3'
    
    services:
    
      db1:
        image: postgres:12.4-alpine
        container_name: 'flask_check_db'
        expose:
          - '5432'
        ports:
          - '5432:5432'
        environment:
          - POSTGRES_DB=postgres
          - POSTGRES_PASSWORD=postgres
          - POSTGRES_DB=appdata
    
      python:
        image: <docker hubのアカウント名>/pythonflaskcheck
        container_name: 'flask_check_app'
        depends_on:
          - db1
        expose:
          - '5000'
        ports:
          - '5000:5000'
        stdin_open: true
        tty: true
        command: /bin/bash
    

    3. IntelliJ의 SDK에 2로 만든 yaml 지정



    File -> Project Structure를 클릭합니다.
    ※ 절차를 건너 뛰고 있지만 사전에 IntelliJ에서 파이썬 프로젝트를 만들고 있습니다.



    왼쪽 창에서 Project를 클릭합니다.
    오른쪽 창에 Project SDK가 표시되므로,
    목록에서 Add SDK → Python SDK...를 클릭합니다.


    왼쪽 창에서 Docker Compose를 클릭합니다.
    Configuration file(s)에 2로 만든 docker-compose.yml을 지정한다.
    지정하면 서비스 풀다운에 'db1'과 'python'이 나열되므로,
    파이썬을 선택하고 확인 버튼을 클릭하십시오.

    flask 시작 파이썬 파일을 마우스 오른쪽 버튼으로 클릭하고 메뉴에서 Run을 클릭하십시오.

    그리고 IntelliJ가 자동으로 docker-compose를 실행하고 2.에서 만든 docker-compose.yml을 기반으로
    컨테이너를 기동해,flask 어플리케이션을 기동해 준다.

    좋은 웹페이지 즐겨찾기