서버, DB, 클라이언트 배포

1. 서버 배포

1-1. 'Dockerfile' 생성후 빌드


Dockerfile에 아래 내용 삽입.
FROM openjdk:17
VOLUME /tmp
COPY build/libs/*.jar app.jar
ENTRYPOINT ["java", "-jar", "/app.jar"]


터미널에 아래 명령어 입력하여, 빌드.
./gradlew build


1-2. gitignore 설정 변경 후 git PUSH (git 반영시 무시하는 리스트)

- 이때 build된 폴더가 깃허브에 올라가야 하므로 .gitignore파일에 build항목을 #으로 주석 처리

- 이렇게 추가된 jar파일을 다시 깃 허브에 push

- 깃 허브에 build 폴더와 Dockerfile까지 올라갔는지 확인.




1-3. Render(서버 배포) 이용하기.

https://render.com/
- 프로젝트 새로 생성 (free)
- git과 연결해서 해당 git repo와 연결


1-4. git에 올라간 내용 동기화 (git에 커밋을 했다면, 클릭한다. )

Manual Deploy > Deply latest commit



1-5. 프론트 js 코드 수정하기 (API 주소)




1-6. 서버코드 수정사항 있을시, 배포.

1) 터미널    >  ./gradlew build
2) 터미널    >  git에 배포
3) Render  >  Deply latest commit


2. db 세팅 및 연동

2-1 Railway ( MySQL db 제공) 이용하기

- https://railway.com/
- git 계정으로 로그인

2-2 Railway DB정보로 java 수정



Deployments: 주소확인
Variables > MYSQL_PUBLIC_URL: 포트번호 확인
Variables > MYSQL_ROOT_PASSWORD: 비밀번호 확인



2-3. 서버코드 수정사항 있을시, 배포.

1) 터미널    >  ./gradlew build
2) 터미널    >  git에 배포
3) Render  >  Deply latest commit


3. 클라이언트 배포 (git을 서버랑 별도로 새로 만든다.)

3-1. Settings > Pages 에서 Branch 값을 변경한다. 변경 후, 좀 기다리면 주소가 뜬다.






3-2 java코드 접근권한 설정

- WebConfig 파일에 다음과 같이 권한 설정 (깃허브 웹주소 - 하위 repo명은 생략)
ex) https://000000000000000000000000.github.io
package com.example.basic.cofigure;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class WebConfig implements WebMvcConfigurer {

@Override
public void addCorsMappings(CorsRegistry registry){
registry.addMapping("/api/**").allowedOrigins("깃허브 웹주소").allowedMethods("GET","POST","PUT","DELETE").allowCredentials(true);
}
}


- application.yml 에 보안 프로토콜에 대한 세션, 쿠키 설정 추가
server:
port: 8080
servlet:
session:
cookie:
secure: true
http-only: true
same-site: none

spring:
datasource:
url: jdbc:mysql://tramway.proxy.rlwy.net:00000/railway
username: root
password: 000000000000000000000000000000000000000000000
driver-class-name: com.mysql.cj.jdbc.Driver

jpa:
hibernate:
ddl-auto: update
show-sql: true
properties:
hibernate:
format_sql: true


3-3. 서버코드 수정사항 있을시, 배포.

1) 터미널    >  ./gradlew build
2) 터미널    >  git에 배포
3) Render  >  Deply latest commit


4. 기타 (환경변수 암호화)

4-1. Render 환경변수





댓글 쓰기

다음 이전