pre-onboarding-backend-G / team-g-project-skeleton

nest 스켈레톤 프로젝트
0 stars 0 forks source link

도커 관련 설정 방법들 #14

Closed Zamoca42 closed 9 months ago

Zamoca42 commented 10 months ago

이슈 내용

설정 방법들을 기록으로 남겨놓습니다


작업 사항


기타사항


Zamoca42 commented 10 months ago

feed-me-baby에서 사용했던 postgresql과 pgadmin에 관한 설정

리포지토리 링크: https://github.com/pre-onboarding-backend-G/feed-me-baby

커밋 템플릿 적용 방법

# 로컬 환경에서 커밋 템플릿 적용
git config --local commit.template .gitmessage.txt

# 커밋 템플릿으로 커밋
git commit

vscode 확장앱 설치

스크린샷 2023-10-27 오후 10 16 17

처음 로컬 환경에서 도커 시작

# 패키지 설치
npm install
# 빌드 후 시작
docker compose up --build
# 빌드가 완료되면 도커 종료

스크린샷 2023-11-01 오후 12 52 33

DevContainer로 시작

  1. 명령팔레트에서 F1 누르고 컨테이너 다시 빌드하고 다시 열기 선택

    스크린샷 2023-11-01 오후 12 58 45

  2. 기다리기 (오래 걸림)

  3. 왼쪽 아래 상태바를 확인

    스크린샷 2023-11-01 오후 12 47 10

Nest - TypeORM - Postgres 설정 과정 요약

postgresql 연결 확인

스크린샷 2023-11-01 오후 1 55 44

pgadmin에 postgresql 연결

스크린샷 2023-11-01 오후 2 06 18

pgadmin 연결 확인

스크린샷 2023-11-01 오후 2 06 48

nest 연결 확인

스크린샷 2023-11-01 오후 2 17 51

Zamoca42 commented 10 months ago

개인 의견

docker-compose.yml (with postgresql)

version: '3.9'

volumes:
  postgres: {}

services:  
  database:
    container_name: feed-me-baby-postgres
    image: postgres:14-alpine
    restart: always
    environment:
      POSTGRES_DB: ${DATABASE_NAME}
      POSTGRES_USER: ${DATABASE_USER}
      POSTGRES_PASSWORD: ${DATABASE_PASS}
    networks:
      - mynetwork
    ports:
      - "5432:5432"
    volumes:
      - './postgres:/var/lib/postgresql/data'

  pgadmin:
    container_name: feed-me-baby-pgadmin
    image: dpage/pgadmin4
    restart: always
    networks:
      - mynetwork
    environment:
      PGADMIN_DEFAULT_EMAIL: root@root.com
      PGADMIN_DEFAULT_PASSWORD: ${DATABASE_PASS}
    ports:
      - "5050:80"

  nest-app:
    container_name: feed-me-baby-NestJS
    build:
      context: .
      dockerfile: docker/local.Dockerfile
    ports:
    # app port
      - '3000:3000'
    # debugging port
      - '9229:9229'
    volumes:
      - .:/usr/src/app
    # npm run start
    # npm run start:debug -> this is debugging mode
    command: npm run start
    depends_on:
      - database
    networks:
      - mynetwork
    environment:
      DATABASE_NAME: ${DATABASE_NAME}
      DATABASE_USER: ${DATABASE_USER}
      DATABASE_PASS: ${DATABASE_PASS}
      DATABASE_HOST: ${DATABASE_HOST}
      ALLOWED_ORIGINS: ${ALLOWED_ORIGINS}

networks:
  mynetwork:

pgadmin 설정

  pgadmin:
    container_name: dump-in-pgadmin
    image: dpage/pgadmin4
    restart: unless-stopped
    ports:
      - '5555:80'
    volumes:
      - ./pgadmin:/var/lib/pgadmin
    environment:
      PGADMIN_DEFAULT_EMAIL: ${PGADMIN_DEFAULT_EMAIL}
      PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD}
      TZ: Asia/Seoul
    depends_on:
      - database
Zamoca42 commented 10 months ago

postgresql

  database:
    container_name: dump-in-postgres
    image: postgres:14-alpine
    restart: unless-stopped
    environment:
      POSTGRES_DB: ${DATABASE_NAME}
      POSTGRES_USER: ${DATABASE_USER}
      POSTGRES_PASSWORD: ${DATABASE_PASS}
      TZ: Asia/Seoul
    networks:
      - mynetwork
    volumes:
      - './postgres:/var/lib/postgresql/data'
    ports:
      - '5433:5432'