데브옵스

Dockerfile 작성해서 Code Deploy 하기

qwertyv 2024. 8. 25. 13:27

1. Dockerfile을 작성

FROM openjdk:17
ARG JAR_FILE=build/libs/*.jar
COPY ${JAR_FILE} app.jar
ENV TZ=Asia/Seoul
ENTRYPOINT ["java", "-jar", "/app.jar"]

 

Springboot 3.x, Java17  프로젝트의 이미지를 빌드할 것이고,

도커파일은 이와 같이 작성했다.

 

도커파일 위치

 

 

2. 도커 허브에 레포지토리를 생성

 

도커 허브에서 Create repository를 눌러서 생성하면 된다.

 

 

3. build.gradle 설정

// build.gradle
jar {
    enabled = true
    manifest {
        attributes(
                'Main-Class': 'org.example.deploytest.DeployTestApplication' // Main-Class 설정
        )
    }
}

 

 

4. jar 파일 생성

jar 파일 생성 방법은 2가지가 있다.

 

1) 명령어 사용

 ./gradlew clean build

 

 

2) 인텔리제이 사용

오른쪽을 보면 코끼리 모양 -> build -> jar 를 누르면 jar 파일이 생성된다.

 

 

5. 도커 이미지 빌드

docker build --platform [운영체제] -t [레포지토리 이름]/[이미지 이름]:[버전] .

> docker build --platform linux/arm64 -t qwertygoov/deploytest:1.0 .

 

 

4. 빌드한 이미지 푸쉬

docker push [레포지토리 이름]/[이미지 이름]:[버전]

> docker push qwertygoov/deploytest:1.0

도커허브에서 푸시한 이미지를 확인할 수 있다.

 

 

5. 배포할 서버에서 도커 이미지 받기

docker pull [레포지토리 이름]/[이미지 이름]:[버전]

> docker pull qwertygoov/deploytest:1.0

아직 배포할 서버가 준비되지 않아서, 로컬에다가 pull 받았다.
배포할 서버가 있으면, 그쪽에 접속해서 pull 받으면 된다.

`docker images`명령어를 사용하여 pull 받은 이미지들을 확인한다.

 

 

6. 이미지를 지정하여 컨테이너 실행

docker run -p [호스트 포트번호]:[컨테이너 포트번호] [레포지토리 이름]/[이미지 이름]:[버전]

> docker run -d -p 8080:8080 qwertygoov/deploytest:1.0

`docker ps` 명령어를 사용하여 컨테이너가 생성되고 잘 실행되는 걸 볼 수 있다.

 

Docker Desktop으로도 확인이 가능하다.

 

 

7. 서버 사용

도커로 서버를 실행시켜놨으니, 프로젝트가 잘 되는지 보기 위해 API를 날려보자.