ABOUT ME

Today
Yesterday
Total
  • docker 설정
    개인 프로젝트 진행/이커머스 작업 2023. 5. 29. 15:09
    반응형

    https://github.com/rlawls1991/commerce/tree/main/docker

     

    GitHub - rlawls1991/commerce: 내가 만드는 커머스

    내가 만드는 커머스. Contribute to rlawls1991/commerce development by creating an account on GitHub.

    github.com

     

    docker를 이용하여 MySQL 서버 및 Redis 서버를 관리하고자 한다.
    버전은 3버전을 선택했으며, docker 이미지는 biarms/mysql 5.7 및 redis 5.08버전을 사용하기로 하였다.

    그리고 MySQL 같은 경우 Master/Slave 구조로 작성하였다.

    version: '3'
    services:
      mysql-master:
        image: biarms/mysql:5.7
        volumes:
          - ./sql/mysql_db/master:/mysql
          - ./sql/commerce/review:/review
          - ./sql/commerce/product:/product
          - ./sql/commerce/user:/user
          - ./sql/commerce/escrow:/escrow
          - ./seeding_m1.sh:/docker-entrypoint-initdb.d/seeding.sh
          - ./db/conf/master:/etc/mysql/conf.d
        environment:
          - TZ=Asia/Seoul
          - MYSQL_ROOT_PASSWORD=1234
          - MYSQL_DATABASE=user
          - MYSQL_USER=app_commerce
          - MYSQL_PASSWORD=test1234
        ports:
          - "53060:3306"
        networks:
          - docker-net
    
      mysql-slave:
        image: biarms/mysql:5.7
        volumes:
          - ./sql/mysql_db/slave:/mysql
          - ./sql/commerce/review:/review
          - ./sql/commerce/product:/product
          - ./sql/commerce/user:/user
          - ./sql/commerce/escrow:/escrow
          - ./seeding_m1.sh:/docker-entrypoint-initdb.d/seeding.sh
          - ./db/conf/slave:/etc/mysql/conf.d
        depends_on:
          - mysql-master
        environment:
          - TZ=Asia/Seoul
          - MYSQL_ROOT_PASSWORD=1234
          - MYSQL_DATABASE=user
          - MYSQL_USER=app_commerce
          - MYSQL_PASSWORD=test1234
        ports:
          - "53070:3306"
        networks:
          - docker-net
    
      redis-cluster:
        image: redis:5.0.8
        volumes:
          - ./redis:/redis
        environment:
          - START_PORT=30001
          - END_PORT=30003
          - TIMEOUT=1000
          - REPLICAS=0
          - PASSWORD=1234
        ports:
          - "30001-30003:30001-30003"
        entrypoint: /redis/docker-entrypoint.sh
        networks:
          - docker-net
    
    networks:
      docker-net:
        driver: bridge

     

    우선 스키마를 실제 운영에서 사용하는 것처럼 review, escrow, product, user 스키마로 분류를 하였다.

     

    위와같이 분류한 이유는 실제 위메프에서 배웠던 내용들을 사용하고 있다.

    (스키마가 다른 경우 API를 이용하여 데이터 조회)

     

     

    반응형
Designed by Tistory.