[Web] 협업(1) - DB편

업데이트:



물론 개발 단계에서도 클라우드로 DB서버를 띄울 수 있는 자본💰이 있다면, 굳이 이렇게 하지 않아도…

저는 오늘도 힘내, 맥북아!!


image





본론 (도커를 써보자)


이번 편은 도커를 사용하여 팀원들이 동일한 DB 환경에서 작업할 수 있도록 하는 방법입니다.


팀원들 각자의 로컬에 통일해서 DB환경을 맞춰도 되지만,

다른 포트로 포워딩하기도 쉬워서 이 방법을 추천합니다.

(가령, 로컬에서 3306포트를 MariaDB쓰고 있다가 프로젝트를 MySQL로 해야 한다면,

MySQL의 디폴트 포트(3306)를 다른 포트로 변경해줘야 하는데,,, 저는 도커가 편한거 같아요😅)



도커 설치


스프링 부트 프로젝트에서 MySQL을 사용한다고 가정하고 진행하겠습니다.


먼저 도커를 설치해야 합니다.

OS에 맞게 도커를 설치하는 좋은 블로그가 많네요~~

=> 참고 : 운영체제 별 Docker 설치 방법 총 정리


저는 Mac(인텔칩) 유저이기 때문에, 도커 데스크탑 설치 를 했습니다.

image


이렇게 설치하면 docker-compose도 함께 설치가 됩니다 :)

그렇게 설치를 하면 /usr/local/bin 경로에 잘 설치된 것을 확인할 수 있습니다.

image


그리고 저는 .zshrc 에 환경변수를 추가해서 사용하고 있습니다.

vi ~/.zshrc

(맨 밑)

> export PATH="$PATH:/usr/local/bin"




도커 컴포즈 파일 생성


그렇다면 docker-compose.yml에 DB스펙을 정해 봅시다.

도커 컴포즈를 사용하는 이유는 여러 개의 컨테이너를 하나의 서비스로 정의해서 묶음으로 관리하는 용도인데요.

추후에 DB서버와 함께 어플리케이션 서버 컨테이너를 띄우는 작업을 할 때 유용하게 사용됩니다.

각 컨테이너의 의존성, 네트워크, 볼륨 들을 함께 정의할 수 있기 때문입니다.

그렇다면 바로 작성해봅시다!


도커 컴포즈를 사용하려면 가장 먼저 yaml(yml)파일을 작성해야 합니다.

version: "3"
services:
  db:
    image: mysql:latest
    container_name: mydb
    restart: always
    ports:
      - "3307:3306"
    environment:
      MYSQL_DATABASE: "[DB명]"
      MYSQL_ROOT_PASSWORD: "[root 비밀번호]"
      MYSQL_USER: "[DB 사용자 이름]"
      MYSQL_PASSWORD: "[DB 사용자 패스워드]"
    command:
      - --character-set-server=utf8mb4
      - --collation-server=utf8mb4_unicode_ci
  • version : YAML파일 포맷의 버전을 나타내며, 도커 컴포즈 1.10은 버전 3을 사용합니다.
  • services : 생성될 컨테이너들을 묶어놓은 단위입니다.
  • db : 생성될 서비스의 이름. (이 항목 아래에서 컨테이너 생성에 필요한 옵션을 지정할 수 있습니다.)
    • image : 이미지 이름을 설정. (이미지가 존재하지 않으면 저장소에서 자동으로 내려 받습니다.)
    • restart : 컨테이너 실행 중단되면 알아서 재시작
    • ports : 컨테이너를 개방할 포트
    • environment : '--env' 옵션과 동일
    • command : 컨테이너 실행 시 수행할 명령어로, docker run 마지막에 붙는 옵션




컨테이너 실행


이제 모든 준비가 끝났습니다.

intellij 사용자라면 플러그인을 설치하면 클릭 한번으로 실행할 수 있습니다.


image



혹은 터미널에서 아래 명령어로 실행합니다.

docker-compose -f docker-compose.yml up -d

(-f 옵션은 특정 컴포즈 파일을 지정하도록 하는 옵션입니다.)




카테고리:

업데이트: