오늘

myloa docker compose setting 본문

myloa

myloa docker compose setting

jhw715 2023. 5. 14. 01:00

장기적인 토이프로젝트 관리를 위하여 컨테이너 환경을 구성하기로 했다.

현재 라즈베리파이에서 운영을 하고 있지만 AWS에서 운영할 계획이 있고, 혹시 불가피한 상황이 생길 경우를 대비하기 위함이다.

컨테이너 환경 구성시의 장점

  • 기존 VM 대비 컴퓨터 자원을 덜 소모
  • 서버 OS에 종속되지 않는다. 컨테이너만 동일하면 window, linux 모두 동일한 동작
  • 어플리케이션을 위한 의존성 패키지(or 라이브러리) 관리가 필요 없다. ( 컨테이너 엔진만 설치하면 끝남)
  • VM에 비해 배포가 편하고 빠르다. ( 컨테이너 이미지 크기 <  VM 이미지 파일 크기)

도커와 쿠버네티스중에 도커를 선택한 이유는 쿠버네티스에 비해 비교적 간단하다고 들었기 때문이다.

 

myloa 서비스에서 사용하는 3개의 서버 모두 도커 컨테이너 위에서 운영하고 있으며, 손쉽게 관리하기 위해서 docker compose 컴포넌트를 활용하고 있다.

- nginx : 웹서버

- react : Front

- nodejs : API Server

 

 ++ myloaService docker-compose 설정 파일

더보기

 

version: '3'
services:
  myloa_nginx:
    container_name: "myloa_nginx"
    image: myloaproject-myloa_nginx
    ports:
      - "443:443"
    networks:
      - innerNet
    volumes:
      - ./var/nginx/log:/var/log/nginx:rw
      - ./var/ca:/var/ca:ro
    environment:
      - TZ=Asia/Seoul
    depends_on:
      - myloa_apiserver
      - myloa_react

  myloa_apiserver:
    container_name: "myloa_apiserver"
    image: myloaproject-myloa_apiserver
    ports:
      - "2087:2087"
    networks:
      - innerNet
    volumes:
      - ./var/apiserver/logs:/app/apiserver/logs:rw
    environment:
      - TZ=Asia/Seoul
      - NODE_ENV=production
    command: pm2-runtime start myloaService.config.js env_production
  
  myloa_react:
    container_name: "myloa_react"
    image: myloaproject-myloa_react
    ports:
      - "3000:3000"
    networks:
      - innerNet
    environment:
      - TZ=Asia/Seoul
    command: serve -l 3000 -s build
    
networks:
  innerNet:
    driver: bridge

 

Comments