MySQL, SpringBoot, React 컨테이너를 각각 실행하고 연동하는 docker-compose.yaml 파일을 제작합니다. MySQL은 최초 컨테이너 실행 시 초기 데이터가 설정되도록 만들어진 이미지를 사용해 컨테이너를 실행하고, React는 깃 허브에 등록된 소스 코드를 가져와 Dockerfile을 빌드해 컨테이너를 실행합니다.
각 이미지 작성 방법은 아래 문서를 참고하세요.
MySQL 컨테이너 생성 시 데이터베이스 스키마와 초기 데이터 생성
MySQL 컨테이너를 생성할 때 애플리케이션에서 필요로 하는 데이터베이스 스키마와 초기 데이터를 생성하도록 Dockerfile을 정의하고 이미지를 생성하는 방법입니다. 초기 데이터 생성 데이터베이
myanjini.tistory.com
깃허브로부터 가져온 리액트 코드를 실행하는 도커 이미지 제작
깃허브로부터 리액트 소스코드와 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
최초 실행 시 데이터베이스 설정이 완료되기 전에 스프링부트가 실행되어 오류가 발생할 수 있으며, 이는 헬스 체크 기능을 추가해 대응할 수 있습니다.
'개발 > 리액트' 카테고리의 다른 글
map 함수를 이용한 객체 배열에 새로운 속성 추가 (0) | 2023.02.27 |
---|---|
useContext Hook (0) | 2023.02.22 |
BrowserRouter를 이용한 웹 기반 애플리케이션 라우팅 구현 (0) | 2020.05.22 |
리액트 머티리얼 UI 컴포넌트를 이용한 할일 목록 구현 (0) | 2020.05.22 |
axios를 이용한 날씨 정보 조회 (0) | 2020.05.22 |
댓글