IntelliJ와 docker-compose를 사용하여 로컬 환경을 더럽히지 않고 flask + postgresql 환경 구축
5468 단어 Flask파이썬IntelliJdocker-compose도커
동기와 개요
「 IntelliJ+Docker로 local을 더럽히지 않고 개발 」를 참고로 하겠습니다.
환경
소프트웨어
버전
Windows 10 Professional
-
IntelliJ Ultimate
2020.3
docker desktop community
2.5.0.1
전제 조건
작업 개요
작업이지만 푹 아래 아래가됩니다.
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 어플리케이션을 기동해 준다.
Reference
이 문제에 관하여(IntelliJ와 docker-compose를 사용하여 로컬 환경을 더럽히지 않고 flask + postgresql 환경 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kararu88/items/4060dfb531c203127030텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)