본문 바로가기

클라우드

[백엔드] 스프링 + docker 컨테이너로 이미지 만들기

1.테스트를위해 스프링부트 프로젝트를만듭니다.

 

https://start.spring.io/

 

 

2.Create 이후 프로젝트를 내폴더에 저장합니다

"demo"라는 프로젝트명으로 저장하였습니다.

3.Intelli J에서 프로젝트를 열어줍니다.

[파일] - [열기] - [폴더명클릭] 프로젝트 "demo"

 

 

 

 

4.프로젝트 테스트를 위해 아래 스프링프레임웍에 .web 함수를 import합니다.

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

 

처음에 .web 부분에서 빨간색 글씨가 나오면서 사용하지못할텐데 

 

bulid.gradle에서 의존성을 추가해주어야 합니다.

 

아래 추가

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-web'
}

 

5. 재시작해줍니다. 

 

 

[무효화 및 다시시작] 클릭

 

 

6.재시작 후 

demo > src > main > java > com.example.demo > DemoApplication 파일에 아래 Hello World" 코드를 추가합니다.

@GetMapping(value = "/")
public String doGetHelloWorld() {
	return "Hello World";
}

@GetMapping(value = "/demo")
public String doGetHelloWorldDemo() {
	return "Hello World (Demo)";
}

 

전체코드

package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;


@RestController
@SpringBootApplication
public class DemoApplication {

	public static void main(String[] args) {
		SpringApplication.run(DemoApplication.class, args);

	}


@GetMapping(value = "/")
public String doGetHelloWorld() {
	return "Hello World";
}

@GetMapping(value = "/demo")
public String doGetHelloWorldDemo() {
	return "Hello World (Demo)";
}
}

 

7.결과확인

 

 

 

실행결과 톰갯실행도 정상임 확인

 

 

최종결과 

 

 

프로젝트 폴더로 이동해서 실행

./gradlew clean build

 

여기서 명령어가 안먹을수있다(gradlew미설치)

다운로드 후 환경변수까지 적용해줘야한다.

(다운로드)

https://gradle.org/releases/

 

다운로드후 환견변수 설정

 

 

 

Dockerfile만들기

 

Dockerfile

# OpenJDK 17을 기반으로 하는 경량화 스프링 부트 이미지
FROM openjdk:17-alpine

# 작업 디렉토리 설정
WORKDIR /app

# 빌드된 JAR 파일을 컨테이너에 복사
COPY build/libs/*.jar app.jar

# 컨테이너의 8080 포트를 외부에 노출
EXPOSE 8080

# JAR 파일 실행
ENTRYPOINT ["java", "-jar", "app.jar"]

 

 

.dockerignore

# Gradle 캐시 디렉토리
.gradle/

# 빌드 결과물
build/

# IDE 관련 파일
.idea/
*.iml

# 버전 관리 디렉토리
.git/

# 로그 파일
*.log

# OS에서 생성하는 임시 파일
*.swp
*.bak

 

 docker build -t backendtest .

 

 

 

[ec2-user@ip-172-31-0-43 ~]$ sudo yum update -y

 

 

sudo yum install docker -y

 

 

권한때문에 실행이 안된다 이유는

 

docker login을 안했기때문에.. 그리고

알고보니 도커허브에 올라온게 없었다

 

땡겨올 이미지가 없었던것

다운로드
다운로드
다운로드

 

로컬에서 도커 태그를 붙여준다음

 docker tag backendtest jarrydms/backendproject:latest

 

도커허브로 업로드한다.

docker push jarrydms/backendproject:latest

 

 

 

 

https://velog.io/@g6y116/5

 

[Full Stack 배포] React + Springboot + Docker 로컬 환경에서 실행

팀 프로젝트를 위한 react + springboot 배포 강좌

velog.io

 

 

 

 

 

 

 

참고 출처 : https://tychejin.tistory.com/386

 

[Gradle] Windows에 Gradle 설치하기

Windows에 Gradle 설치하기 1. Gradle 다운로드 https://gradle.org/releases/ 에서 원하는 버전에 binary-only 또는 complete을 선택하여 다운로드하세요. 2. Gradle 설치 디렉토리(C:\gradle\)를 만들고 다운로드한 압축

tychejin.tistory.com


https://www.innofactory.net/blog/posts/seanbryu/20231003-spring-helloworld/

 

Spring Boot 에서 Hello World 예제 구현

Spring Boot 를 이용하여 Hello World 를 찍는 예제를 구현한다.

www.innofactory.net

 

 

반응형