데브옵스
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를 날려보자.