✅ 1. 폴더 구조 만들기
mkdir springboot-app
cd springboot-app
mkdir src
최종 구조 예시:
springboot-app/
├── compose.yml
├── Dockerfile
├── .env
└── src/
✅ 2. .env 파일 작성
📄 .env
SERVER_PORT=8080
✅ 3. Spring Boot 코드 작성 (예: AppController)
📄 src/main/java/.../AppController.java
@RestController
public class AppController {
@GetMapping("/")
public String home() {
return "Hello, World!";
}
}
✅ 4. build.gradle 및 프로젝트 빌드
./gradlew clean build
# windows에서는 gradlew clean build
✅ 5. Dockerfile 작성
📄 Dockerfile
FROM openjdk:17-jdk
COPY build/libs/*SNAPSHOT.jar /app.jar
ENTRYPOINT ["java", "-jar", "/app.jar"]
✅ 6. compose.yml 작성
📄 compose.yml
services:
my-server:
build: .
ports:
- "${SERVER_PORT}:8080"
env_file:
- .envv
🔍 핵심 포인트 설명
항목 | 설명 |
env_file | .env 파일을 불러와서 환경 변수로 사용 |
SERVER_PORT | 외부에서 접근할 포트 (여기선 8080) |
build: . | Dockerfile이 있는 현재 디렉토리에서 이미지 빌드 |
ports | 호스트:컨테이너 포트 매핑 |
✅ 7. 실행
docker compose up -d --build
✅ 8. 결과 확인
웹 브라우저에서 http://localhost:8080에 접속
해당 문구가 뜨면 성공!
✅ 전체 요약 흐름
Spring Boot 컨테이너(my-server)
│
└──▶ 호스트(8080)
🧠 보너스 팁
- .env 파일은 환경변수와 포트 등 관리에 필수
- .gitignore 에 .env 추가 추천
- docker compose down 으로 컨테이너 중지/삭제
'코딩 > Docker' 카테고리의 다른 글
🐳 Docker Compose로 MySQL + Node.js 연동하기 (1) | 2025.06.30 |
---|---|
🐳 Docker Compose로 Redis + Node.js 연동하기 (0) | 2025.06.26 |
🐳 자주 사용하는 Docker Compose CLI 명령어 (0) | 2025.06.26 |
🐳 Docker Compose + Nginx로 정적 웹사이트 띄우기 (0) | 2025.06.25 |
🐳 Docker Compose를 사용하는 이유 (0) | 2025.06.25 |
댓글