본문 바로가기

docker4

Docker compose를 통한 Nginx, Spring boot, React, Mysql 연동 및 배포 서론 최근 프로젝트에서 도커를 통해 Spring boot와 React 프로젝트를 진행하면서 리버스 프록시 역할을 수행하는 Nginx를 같이 실행해 보았다. 추가로 Mysql까지 실행하며 모든 컨테이너는 Docker compose에 의해 실행될 수 있도록 구현하였다. Spring boot는 비즈니스 로직을 처리하며 Mysql과 연동하여 데이터를 저장, 처리, 조회하는 기능을 담당한다. React는 사용자와 상호작용하는 부분으로 Nginx 서버를 통해 구동되며, Nginx 서버는 사용자 요청을 url에 따라 Spring boot로 보낼지, React로 보낼지 정하는 리버스 프록시 역할을 수행한다. 이 글에서는 docker-compose를 통해 각 서비스를 배포한 과정을 기록한 것이다. 본론 우선 실행을 위한.. 2024. 4. 7.
도커 스웜(Docker Swarm)을 통해 여러 서버를 운용해보자(로드 밸런싱, 도커 컴포즈, 스택 등) 들어가기 서버를 배포할 때 항상 나오는 용어가 있다. '로드 밸런싱'. 로드 밸런싱은 사용자의 요청으로 발생한 트래픽을 하나의 서버만이 아니라 여러 서버가 나눠서 받는 것을 말한다. 이러한 로드 밸런싱을 통해 하나의 서버로 트래픽이 몰려 과부하가 걸리는 것을 방지할 수 있다. 로드 밸런싱을 이루는 방법은 다양하게 있는데, 그중 오케스트레이션 도구를 사용하는 것이다. '오케스트레이션 도구'란 여러 개의 서비스를 연결하여 커다란 클러스터로 만들어 관리하는 것으로 배포, 관리, 확장, 네트워킹을 자동화할 수 있다. 여러 개의 서비스는 같은 서비스가 여러 개 일 수 있다는 말이고, 트래픽을 여러 서버가 나눠서 받는 로드 밸런싱을 구현할 수도 있다. 서버 내의 서비스가 포화상태면 서버를 병렬로 추가하여 쉽게 확장.. 2023. 12. 4.
docker compose를 통해 배포해보자(springboot, react, redis) 들어가기 프로젝트를 진행하면서 실제 서비스를 위해 반드시 필요한 과정이 배포이다. 배포하는 과정을 통해 다른 사람들이 서비스에 접근할 수가 있다. 나는 프로젝트를 배포한 경험이 여러 번 있지만 그때마다 aws 인스턴스를 새로 만들어서 사용했었다. 그리고 새 인스턴스마다 환경 설정을 하고 필요한 것들을 설치하고 shell 명령어를 입력하는 등 성가신 과정들을 밟았었다. 그리고 로컬 서버에서 동작하던 것이 배포 서버에서는 동작을 못하는 등 배포 서버에 추가적인 설정을 해줬어야 했다. 하지만 도커(docker)를 사용한다면 복잡한 환경설정을 하지 않아도 된다. 미리 만들어 놓은 이미지들을 컨테이너로서 실행하기만 하면 된다. 그리고 도커 컴포즈를 사용하면 다중 컨테이너(다중 서비스)를 하나의 파일로 한번에한 번.. 2023. 11. 17.
Gradle, 도커(docker)를 통한 springboot3 with mysql 배포(docker-compose) build.gradle 에 도커 관련 추가 부분 plugins { id 'java' id 'org.springframework.boot' version '3.2.3' id 'io.spring.dependency-management' version '1.1.4' id 'com.palantir.docker' version '0.35.0' } ... docker { println(tasks.bootJar.outputs.files) name rootProject.name + ":" + version dockerfile file('Dockerfile') files tasks.bootJar.outputs.files buildArgs(['JAR_FILE': tasks.bootJar.outputs.files.singl.. 2023. 5. 7.