728x90
Spring Boot 프로젝트 생성, Dockerfile로 이미지 생성 및 빌드
Spring Boot 프로젝트 생성
VSCODE - F1 누르면 커맨드 팔레트(Command palette)
1. 프로젝트 생성(Gradle) : Spring Initializr: Create a Gradle Project
2. 스프링 부트 버전 선택 : 2.6.7
3. 프로젝트 언어 선택 : Java
4. Group Id 입력 : com.example
5. Artifact Id 입력 : demo
6. 패키지 타입 선택 : Jar
7. Jave 버전 선택 : 11
8. 의존성 설정 : Spring Boot DevTools, Spring Web, Lombok
디렉토리 구조
DemoApplication.java 편집
vim demo/src/main/java/com/example/demo/DemoApplication.java
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)
public class DemoApplication {
@RequestMapping("/")
String home() {
return "Hello World!";
}
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
VSCODE - F5 누르면 서버가 실행됩니다.
빌드
gradlew jar
./gradlew jar
./gradlew jar
BUILD SUCCESSFUL in 5s
3 actionable tasks: 3 executed
ls -l build/libs/*.jar
-rw-r--r-- 1 staff staff 1590 5 9 17:17 build/libs/demo-0.0.1-SNAPSHOT-plain.jar
gradlew bootJar
./gradlew bootJar
./gradlew bootJar
BUILD SUCCESSFUL in 2s
4 actionable tasks: 2 executed, 2 up-to-date
Dockerfile로 이미지 생성 및 빌드
Dockerfile 파일 생성
vim Dockerfile
FROM adoptopenjdk/openjdk11
ARG JAR_FILE_PATH=demo/build/libs/*.jar
COPY ${JAR_FILE_PATH} app.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","/app.jar"]
도커 빌드
docker build --tag anti1346/docker-springboot .
도커 컨테이너 실행
docker run -p 8080:8080 anti1346/docker-springboot
curl 테스트
curl localhost:8080
$ curl localhost:8080
Hello World!
728x90
'리눅스' 카테고리의 다른 글
[url] linux one liners (0) | 2022.05.13 |
---|---|
도커 컨테이너 내에서 ssh 서버를 설정하는 방법 (0) | 2022.05.13 |
오픈소스 소프트웨어 보안 가이드북(SK인포섹 EQST그룹) (0) | 2022.05.07 |
EFK(Elasticsearch, Fluentd, Kibana) 스택을 Docker Compose를 사용하여 구성하는 방법 (0) | 2022.05.04 |
[draft] systemctl 명령을 찾을 수 없음 (0) | 2022.05.03 |