본문 바로가기
개발/리액트

게시판 서비스를 실행하는 docker-compose.yaml 파일 제작

by ^..^v 2023. 3. 16.
728x90
반응형

MySQL, SpringBoot, React 컨테이너를 각각 실행하고 연동하는 docker-compose.yaml 파일을 제작합니다. MySQL은 최초 컨테이너 실행 시 초기 데이터가 설정되도록 만들어진 이미지를 사용해 컨테이너를 실행하고, React는 깃 허브에 등록된 소스 코드를 가져와 Dockerfile을 빌드해 컨테이너를 실행합니다.

각 이미지 작성 방법은 아래 문서를 참고하세요. 

https://myanjini.tistory.com/entry/MySQL-%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88-%EC%83%9D%EC%84%B1-%EC%8B%9C-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%8A%A4%ED%82%A4%EB%A7%88%EC%99%80-%EC%B4%88%EA%B8%B0-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%83%9D%EC%84%B1

 

MySQL 컨테이너 생성 시 데이터베이스 스키마와 초기 데이터 생성

MySQL 컨테이너를 생성할 때 애플리케이션에서 필요로 하는 데이터베이스 스키마와 초기 데이터를 생성하도록 Dockerfile을 정의하고 이미지를 생성하는 방법입니다. 초기 데이터 생성 데이터베이

myanjini.tistory.com

https://myanjini.tistory.com/entry/%EA%B9%83%ED%97%88%EB%B8%8C%EB%A1%9C%EB%B6%80%ED%84%B0-%EA%B0%80%EC%A0%B8%EC%98%A8-%EB%A6%AC%EC%95%A1%ED%8A%B8-%EC%BD%94%EB%93%9C%EB%A5%BC-%EC%8B%A4%ED%96%89%ED%95%98%EB%8A%94-%EB%8F%84%EC%BB%A4-%EC%9D%B4%EB%AF%B8%EC%A7%80-%EC%A0%9C%EC%9E%91

 

깃허브로부터 가져온 리액트 코드를 실행하는 도커 이미지 제작

깃허브로부터 리액트 소스코드와 Dockerfile을 가져와 nginx 컨테이너에서 서비스하는 도커 이미지를 제작합니다. 깃허브 저장소 생성 깃허브에 소스코드를 저장할 퍼블릭 저장소를 생성합니다. 소

myanjini.tistory.com

https://myanjini.tistory.com/entry/board-%EC%86%8C%EC%8A%A4%EC%BD%94%EB%93%9C

 

board 소스코드

2023년 3월 13일 MySQL, React, SpringBoot로 구현된 게시판 서비스를 컨테이너 기반으로 변경하는 실습에서 사용할 소스 코드입니다.

myanjini.tistory.com

 

 

docker-compose.yaml

version: '3.3'
services:
  board-mysql:
    #image: mysql:5.7
    image: myanjini/mysql-with-data:lab
    ports:
      - 4406:3306
    # environment:
    #  - MYSQL_ROOT_PASSWORD=root
    #  - MYSQL_DATABASE=springbootdb
    volumes:
      - /c/docker/board_data_lab/:/var/lib/mysql
    # restart: always

  board-springboot:
    depends_on:
      - board-mysql
    image: myanjini/board-springboot:lab
    ports:
      - 8888:8080
    environment:
      - BOARD_DB_USER=root 
      - BOARD_DB_PASSWORD=root 
      - BOARD_DB_IP=board-mysql 
      - BOARD_DB_PORT=3306 
      - BOARD_DB_NAME=springbootdb
    # restart: always

  board-react:
    depends_on:
      - board-springboot
    # image: myanjini/board-react:lab
    build:
      context: https://github.com/myanjini/board-react.git#main
      #dockerfile: Dockerfile
      args:
        - GIT_REPOSITORY_ADDRESS=https://github.com/myanjini/board-react.git
        - REST_API_SERVER_IP=192.168.0.2
        - REST_API_SERVER_PORT=8888
    ports:
      - 80:80

 

실행

C:\docker> docker-compose up

 

최초 실행 시 데이터베이스 설정이 완료되기 전에 스프링부트가 실행되어 오류가 발생할 수 있으며, 이는 헬스 체크 기능을 추가해 대응할 수 있습니다. 

 

728x90
반응형

댓글