이번에는 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
'개발과 기술' 카테고리의 다른 글
[Next JS] Next JS + Material UI + Styled Component 설정방법 (7) | 2020.04.22 |
---|---|
[Python] Python 일정 시간 후 timeout 에러 내는 방법 (5) | 2020.04.14 |
[Prisma] Prisma(Graphql) 로컬서버 설정 방법(+ docker 설정 방법) - PART 1/2 (0) | 2020.03.31 |
[Ubuntu] umask 명령어 (0) | 2018.11.28 |
[Ubuntu] 현재 user가 어떤 group에 속하는지 확인하는 방법 (0) | 2018.09.25 |
댓글