[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개의 댓글

관련 채용 정보

Powered by GraphCDN, the GraphQL CDN