[Docker-compose] PostgreSQL, pgAdmin 설치 + Flask

루나·2022년 7월 27일
0

docker-compose-db.yaml

version: "3.8"
services:
  postgres:
    container_name: postgres
    image: "postgres:14.3"
    volumes:
      - postgres:/var/lib/postgres
    ports:
      - 5432:5432
    environment:
      - POSTGRES_USER=postgres #psql -U 유저
      - POSTGRES_PASSWORD=test #pgAdmin password
      - TZ=Asia/Seoul

  pgadmin:
    container_name: pgadmin
    image: dpage/pgadmin4
    ports:
      - 8088:80
    environment:
      - PGADMIN_DEFAULT_EMAIL=test@test.com #address:8088 인덱스페이지 로그인
      - PGADMIN_DEFAULT_PASSWORD=test #address:8088 인덱스페이지 로그인
      - TZ=Asia/Seoul
    depends_on:
      - postgres

volumes:
  postgres:

docker.env

FLASK_APP=server.py
FLASK_ENV=development
FLASK_DEBUG=True
FLASK_HOST=localhost
FLASK_PORT=4000

SECRET_KEY=secret

PG_HOST=postgres #DB 주소. 여기선 도커에서 생기는 postgres를 지정 (위에서 postgres: 부분)
PG_PORT=5432
PG_DB=postgres
PG_USER=postgres
PG_PASSWORD=test

docker-compose-flask.yaml

version: "3.8"
services:
  flask:
    container_name: flask
    env_file:
      - ./docker.env
    build:
      context: ./src
    ports:
      - 4000:4000
    volumes:
      - ./:/app

/src/Dockerfile

FROM python:3.10.5

WORKDIR /app

COPY requirements.txt requirements.txt

RUN pip install -r requirements.txt

COPY . .

WORKDIR /app/src
#위 과정중 도커 내부에도 똑같이 /src 폴더가 생김

CMD ["python", "-m", "flask", "run", "--host=0.0.0.0", "--port=4000"]
#이 앱은 도커 내부의 localhost에서 실행되기 때문에 컨테이너 외부에서 서비스를 사용하기 위해

한시간 정도를 날려먹고나서야 확실하게 이해하고 넘어가야 한다는 것을 다시금 깨달았다..

profile
백엔드 개발자

0개의 댓글