배포를 시작하기 전에 처리해야할 것들 사전 작업으로 해야할 것들을 적어두기.
기본적으로 yum update를 통해서 최신화 진행 완료
springboot 3.x 이상부터는 java 17을 사용하기 때문에 java 17 깔기
- 자바 깔기 완료
db는 mariaDB로 변경하고 mariaDB를 깔아주기
- (mariaDB 깔기 완료)
Docker 추가
- springboot 와 mariaDb 둘다 도커를 통해서 실행
- (mariaDb는 docker 추가 완료)
jasypt 환경변수 설정하는 법 알아두기
- 유출되면 안되는 정보들은 jasypt를 활용해서 암호화를 진행했기 때문에.
- (환경변수 설정 완료)
개인적으로 배포 테스트하면서 진행할거기 때문에 도메인은 사지않고 진행.
ngix proxy manager를 깔기
- (아직 안한 부분)
포트 포워딩하기.
- (아직 안한 부분)
기본 적으로 서버는 aws EC2 프리티어에서 진행했다.
도커를 설치하고 난 뒤에 버전까지 확인 한 뒤에 활용을하려면 도커를 실행 시켜놔야한다.
docker 그룹을 생성한 후 사용자를 추가해준다. -> sudo 없이 docker 실행이 가능하게
docker를 실행하고 mariaDB 이미지 실행하기
# 컨테이너 실행
docker run \
--name mariadb_1 \
-d \
--restart unless-stopped \
-e MARIADB_ROOT_PASSWORD=YOURPASSWORD \
-e TZ=Asia/Seoul \
-p 3306:3306 \
-v /docker_projects/mariadb_1/conf.d:/etc/mysql/conf.d \
-v /docker_projects/mariadb_1/mysql:/var/lib/mysql \
-v /docker_projects/mariadb_1/run/mysqld:/run/mysqld/ \
mariadb:latest
설명
--name : 컨테이너 이름
-d : detached 모드 -> 컨테이너가 백그라운드로 실행
-- restart : 컨테이너 종료시 재시작 정책 설정
-e 컨테이너 내에서 사용할 환경변수 설정 -> mariaDB의 계정 비밀번호 넘겨주기.-> 현재는 설명용으로 비밀번호를 지워둠.
-p 호스트와 컨테이너의 포트를 연결
<호스트포트> : <컨테이너 포트> -> 호스트포트 3306으로 들어오면 해당 컨테이너 포트 3306으로 연결해줘.
-v 도커에서 마운트 볼륨 설정 -> 컨테이너와 호스트간에 데이터를 공유하거나 지속적으로 보관
restart 옵션 4가지
directory를 통해서 docker에서 실행할 프로젝트를 디렉토리로 나눠두기
public project 클론 방식
private repo 클론 방식은 access token을 생성하고 해당 토큰을 넣어줘야한다.
프로젝트 클론까지 진행하고 나서 해야할 것들.
이 문제를 해결하기 위해서 규격에 맞춰서 파일을 만들어서 올려놓았었다.
spring:
mail:
host: smtp.naver.com
port: 465
username: userid
password: password
properties:
mail.smtp.auth: true
mail.smtp.ssl.enable: true
mail.smtp.ssl.trust: smtp.naver.com
mail.smtp.starttls.enable: true
sudo mv src/main/resource/application-secret.yml.default src/main/resource/application-secret.yml
빌드를 하기위해서 ./gradlew 파일 chmod 744로 권한을 변경해서 파일소유자가 빌드를 할 수 있도록
gradlew 파일은 gradle 실행 환경을 제공 -> 로컬 시스템이 gradle 이 설치되어 있지 않아도 gradle을 다운로드하고 프로젝트를 지정된 버전의 Gradle 사용하여 빌드.
.bashrc 환경설정파일에 넣어주기
bash 셸의 초기화 파일 -> 사용자가 로그인할 때나 새로운 쉘을 시작할 때 실행
사용자 별로 사용자 디렉토리 에 포함되는 설정파일
해당 파일에 밑의 환경 변수 추가
export JASYPT_ENCRYPTOR_PASSWORD=YOUR_ENCRYPTION_PASSWORD
해당 변수를 넣어준 뒤에 서버를 재시작 하거나 Source . bashrc 와 같이 source 명령어를 통해서 즉시 적용
sudo java -jar -Dspring.profiles.active=dev -Djasypt.encryptor.password=$JASYPT_ENCRYPTOR_PASSWORD build/libs/sbb-0.0.1-SNAPSHOT.jar
여기까지 현재 진행된 모습이고 이제 남은 부분은 다음 게시물에서 진행하면서 기록할 예정.
restart 옵션 참고 ref
https://blog.leocat.kr/notes/2019/11/20/docker-restart-container-whenever-start-docker-desktop
bashrc 참고 :
https://goldsony.tistory.com/243