본문 바로가기
개발과 기술

[Prisma] Prisma(Graphql) 로컬서버 설정 방법(+ docker 설정 방법) - PART 2/2

by growd 2020. 3. 31.

이번에는 prisma-db 서비스를 알아봅시다.

 

version: '3'

services:

  prisma:
    image: prismagraphql/prisma:1.34
    container_name: prisma
    restart: always
    ports:
      - '4466:4466'
    environment:
      PRISMA_CONFIG: |
        managementApiSecret: my-server-secret-123
        port: 4466
        databases:
          default:
            connector: mysql
            host: prisma-db
            port: 3306
            user: root
            password: prisma

  prisma-db:
    image: mysql:5.7
    container_name: prisma-db
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: prisma
    volumes:
      - mysql/data:/var/lib/mysql

 

prisma-db

  • prisma서비스 보다는 비교적 간단합니다.
  • 위와 중복되는 부분은 간략히 적겠습니다.
  • image - PART1과 마찬가지로 mysql 공식 이미지의 5.7버전을 사용하겠다는 의미입니다.
  • container_name - 컨테이너 명 입니다.
  • restart - PART1과 동일 합니다.
  • environment - PART1과 와 동일 합니다.
    • MYSQL_ROOT_PASSWORD - 컨테이너 내부의 MySQL 서버가 사용하는 root계정의 비밀번호 입니다.
  • volumes - 데이터베이스에 데이터가 저장되면 컨테이너 내부의 /var/lib/mysql 디렉토리에 파일로 저장되는데 이 디렉토리를 호스트 컴퓨터의 mysql/data 디렉토리와 매핑시킴으로서 데이터는 호스트에 저장되게 됩니다. 이렇게 조치한다면 db 컨테이너를 삭제하게되더라도 데이터는 보존이되어 다른 db 컨테이너로 데이터 관리를 이어 갈 수 있게 됩니다.

 

 

이제 위의 설정들을 조금 더 안전하고 간편하고 쉽게 할 수 있도록 변경해 봅시다.

프로젝트 디렉토리에 .env파일을 생성한 것을 기억하시나요? 이 .env 파일을 이용합니다.

 

우선 변경된 yml 파일부터 살펴봅시다.

version: '3'

services:

  prisma:
    image: prismagraphql/prisma:1.34
    container_name: prisma
    restart: always
    ports:
      - '4466:4466'
    environment:
      PRISMA_CONFIG: |
        managementApiSecret: ${PRISMA_SECRET}
        port: ${PRISMA_PORT}
        databases:
          default:
            connector: ${PRISMA_CONNECTOR}
            host: ${MYSQL_HOST}
            port: ${MYSQL_PORT}
            user: ${MYSQL_ROOT_USER}
            password: ${MYSQL_ROOT_USER}

  prisma-db:
    image: mysql:5.7
    container_name: prisma-db
    restart: always
    env_file:
      - ./.env
    volumes:
      - mysql/data:/var/lib/mysql
  • prisma 컨테이너의 설정들이 ${변수명}으로 대체되었습니다.
  • prisma-db는 environment가 없어지고 env_file이 생기고 .env파일의 위치를 알려주고 있습니다.

 

.env 파일

PRISMA_SECRET=my-server-secret-123
PRISMA_PORT=4466
PRISMA_CONNECTOR=mysql

MYSQL_HOST=prisma-db
MYSQL_ROOT_USER=root
MYSQL_ROOT_PASSWORD=prisma
MYSQL_PORT=3306
  • yml파일에서 ${변수명}으로 대치했었던 정보들이 변수명=값 으로 이곳에 정의 됩니다.
  • 매우 중요한 정보들이 저장되어 있습니다.

 

.gitignore

.env
  • .gitignore에 .env 파일을 추가하여 사고를 방지합니다.

 

 

PART1

 

[Prisma] Prisma(Graphql) 로컬서버 설정 방법(+ docker 설정 방법) - PART 1/2

Prisma를 배울때는 Prisma 공식 홈에서 제공하는 Prisma Cloud를 사용하는것이 간단하고 편리하지만 실제로 개발을 할 때에는 로컬 혹은 자신의 서버에 Prisma 서버를 띄우고 사용해야 합니다. Prisma 공식 문서에..

growd.tistory.com

 

 

 

 

 

 

 

 

댓글