infra/Docker

Docker를 이용해 Springboot 서버 실행, Github Container Registry push,pull 실습

ssoheeh 2024. 8. 27. 17:55

간단한 스프링 부트 프로젝트 생성

 

 

간단한 코드 작성

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