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 환경변수
Tags:
웹개발_Tool