Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 알고리즘
- 프로그래머스 풀이
- Queue
- SWEA
- 큐
- 문자열
- 백준
- 스프링부트 도커로 배포
- COS Pro
- 스프링부트 도커
- 프로그래머스 자바
- Programmers
- lv2
- 오름차순 정렬
- 삼각형의 완성조건
- 백준 N과 M 자바
- 스프링부트 도커 배포
- index of
- 자바
- Lv1
- java
- 프로그래머스
- StringTokenizer
- 이진수 변환
- 프로그래머스 문자열 정렬
- 버퍼
- Stack
- lv0
- 클라이언트
- 스택
Archives
- Today
- Total
mun dev
[Docker] SpringBoot 프로젝트 Docker로 배포하기(2) 본문
[Docker] SpringBoot 프로젝트 Docker로 배포하기(1)
1편 과정을 마치고 난후 jdk를 설치해준다.
1. jdk 설치
- yum -y install wget curl
- cd /tmp
- rm -rf /opt/jdk-17
jdk 17 다운로드 Linux 64-bit
- wget https://download.java.net/java/GA/jdk17.0.2/dfd4a8d0985749f896bed50d7138ee7f/8/GPL/openjdk-17.0.2_linux-x64_bin.tar.gz
- tar -xvf openjdk-17.0.2_linux-x64_bin.tar.gz
- mv jdk-17.0.2/ /opt/jdk-17/
- vi ~/.bashrc
- 프로파일에 JAVA_HOME 변수와 PATH를 설정한다.(bash 쉘 기준)
.bashrc 내용
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
export JAVA_HOME=/opt/jdk-17 # 추가
export PATH=$JAVA_HOME/bin:$PATH # 추가
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
- source ~/.bashrc
수정된 프로파일을 시스템에 반영한다. - java -version
JDK 설치 확인
2. 소스코드 다운로드
우리는 깃허브에 있는 프로젝트를 배포할 것이기 때문에 git clone후 빌드 준비 한다.
- rm -rf /docker_projects/gram/project
- mkdir -p /docker_projects/gram/project
- cd /docker_projects/gram/project
- git clone 프로젝트링크 .
- 링크에서 .git 빼고 이 명령어에서 가장 끝 부분에 있는 . 을 빠뜨리면 안됨
- git checkout main
- 배포를 원하는 브랜치를 선택
- mv src/main/resources/application-secret.yml.default src/main/resources/application-secret.yml
- 보통 secret파일은 gitignore로 되어있기 때문에 배포를 대비하여 default로 만들어 놓은 파일은 secret으로 바꿔준다.
- vim src/main/resources/application-secret.yml
- 실제 작동하는 키 정보 넣기
3. gradlew 를 소유자가 실행 가능한 상태로 변경
- cd /docker_projects/gram/project
- ls -alh | fgrep gradlew
- chmod 744 gradlew
- ls -alh | fgrep gradlew
4. 빌드
해당 프로젝트의 테스트케이스가 존재한다면, 테스트케이스를 다 성공적으로 통과해야 빌드가 가능하다.
./gradlew clean build
5. 실행
- java -jar -Dspring.profiles.active=prod build/libs/gramgram-0.0.1-SNAPSHOT.jar
- CTRL + C 로 종료 할 수 있음
6. wget 으로 접속이 잘되는지 테스트
새 터미널로 서버 접속
- wget -qO- http://localhost:8080
- 새 터미널 닫고
- exitCtrl + C 눌러서 스프링부트 정지
- 다시 원래 터미널로 이동 후
7. Dockerfile 생성
- vim Dockerfile
FROM openjdk:17-jdk-alpine
ARG JAR_FILE=build/libs/gramgram-0.0.1-SNAPSHOT.jar
COPY ${JAR_FILE} app.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","-Dspring.profiles.active=prod","/app.jar"]
8. gram(프로젝트 이름) 기존 이미지가 혹시 있다면 제거
- docker rm -f gram_1
- docker rmi -f gram
9. gram(프로젝트 이름) 이미지 생성
- docker build -t gram .
10. gram 이미지 실행
docker run \
--name=gram_1 \
--restart unless-stopped \
-p 80:8080 \
-e TZ=Asia/Seoul \
-d \
gram
11. 크롬에서 접속
- 크롬 : http://공인IP
1편에서 네이버 플랫폼으로 생성했던 서버의 공인 IP이다.
접속하면 이렇게 나오게 되는데, 바로는 안 나올 수 있으니 5~10분 정도 기다리면 이와 같은 화면이 나오는 걸 확인 할 수 있다.
'공부 > Docker' 카테고리의 다른 글
[Docker] SpringBoot 프로젝트 Docker로 배포하기(3) (0) | 2023.06.02 |
---|---|
[Docker] SpringBoot 프로젝트 Docker로 배포하기(1) (0) | 2023.06.02 |