간단한 스프링 부트 프로젝트 생성
간단한 코드 작성
package com.example.demo;
import lombok.Getter;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class DockerController {
@GetMapping("/")
public ResponseEntity<String> hello(){
return ResponseEntity.ok("Hello, World!");
}
}
터미널에서 빌드로 jar 파일 생성
build/libs 폴더에 Dockerfile 작성
# openjdk:17 이미지를 기반으로 새로운 이미지를 생성
# 이 기반 이미지에는 Java 17 런타임이 포함
FROM openjdk:17
# JAR_FILE 환경 변수를 설정하고, 해당 환경 변수에 "*.jar"와 일치하는 파일을 할당
# 이 변수는 빌드 시 사용자가 지정할 수 있다
ARG JAR_FILE=*.jar
# JAR_FILE에 할당된 파일을 app.jar로 복사
# 이렇게 하면 컨테이너 내부에 app.jar 파일이 생성된다
COPY ${JAR_FILE} app.jar
# 컨테이너 내부에서 사용할 포트를 8080으로 노출
# 이 포트를 통해 컨테이너에 접근할 수 있다
EXPOSE 8080
# 컨테이너가 시작될 때 실행할 명령어를 지정
# java -jar app.jar 명령어를 실행하여 Spring Boot 애플리케이션을 시작
ENTRYPOINT ["java","-jar","app.jar"]
터미널에서 dockerfile이 있는 경로로 이동 후 도커 이미지 빌드
도커 이미지 실행
깃허브 레지스트리
docker build -t ${GITHUB_NAME}/${IMAGE}:latest .
github login
echo ${GITHUB_TOKEN} | docker login ghcr.io -u ${GITHUB_NAME} --password-stdin
add tag
docker tag ${GITHUB_NAME}/${IMAGE}:latest ghcr.io/${GITHUB_NAME}/${IMAGE}:latest
push
docker push ghcr.io/${GITHUB_NAME}/${IMAGE}:latest
pull
docker pull ghcr.io/${GITHUB_NAME}/${IMAGE}:latest
'infra > Docker' 카테고리의 다른 글
Docker image, Docker container 설치 및 실행 (0) | 2024.08.27 |
---|---|
Docker (0) | 2024.08.21 |