Dependencies는 Spring Web만 넣어주었습니다.
추후에 Dependencies를 추가해야 할 지도 모르겠습니다.
Gradle로 빌드 도구를 선택하였습니다.
# 기존 빌드 디렉토리 삭제 후 빌드
> ./gradlew clean build
결과
> java -jar .\demo-0.0.1-SNAPSHOT.jar
결과
console
localhost
프로젝트의 root 경로에 Dockerfile이라는 이름으로 파일을 생성합니다.
# base-image
FROM openjdk:17-oracle
# 변수 설정 (빌드파일의 경로)
ARG JAR_FILE=build/libs/*.jar
# 빌드파일을 컨테이너로 복사
COPY ${JAR_FILE} app.jar
# jar 파일 실행
ENTRYPOINT ["java","-jar","/app.jar"]
Dockerfile 란
모든 것은 Dockerfile부터 시작된다.
Docker는 Dockerfile에서 명령어를 읽어 이미지를 빌드합니다.
Dockerfile은 소스 코드를 빌드하기 위한 명령어가 들어 있는 텍스트 파일 입니다.
https://docs.docker.com/build/concepts/dockerfile/
# 이미지 빌드 명령어
> docker build -t [이미지 이름] .
- Error
open //./pipe/dockerDesktopLinuxEngine: The system cannot find the file specified.- 원인
Docker Desktop이 실행되지 않았음- 해결
Docker Desktop.exe 실행
#이미지 생성 확인 명령어
> docker images
# 포트 맵핑 명령어
> docker run -p 8080:8080 dockertestimg
# docker run -p [호스트 시스템의 포트]:[컨에이너 안의 포트] []
이미지 기반의 컨테이너 안의 8080포트는 localhost의 8080포트를 사용하는 것이 아니기 때문에 포트 맵핑을 해야 한다.
컨테이너 자체가 foreground로 뜨기 때문에 콘솔을 다시 쓸 수 없다.
# detatched 옵션이 포함한 명령어
# background로 띄워서 docker console을 다시 쓸 수 있다.
> docker run -d -p 8080:8080 dockertestimg
localhost:8080/hello 페이지 띄우기 success
도움 받은 블로그
https://yooooonnf.tistory.com/5
bundle.gradle

파일 자체가 Project 오브젝트(객체),
Project 오브젝트는 Project 인터페이스를 구현하는 구현체이다.
Project 오브젝트는 Project 단위에서 필요한 작업을 수행하기 위해 모든 메서드와 프로퍼티를 모아놓은 슈퍼 객체이다.
public interface Project extends Comparable<Project>, ExtensionAware, PluginAware {
..
}
출처: https://kotlinworld.com/321 [조세영의 Kotlin World:티스토리]
build.gradle 이란?
groovy 언어 기반의 패키지 관리 파일
gradle은 총 3단계로 되어 있다.
