feat: 배포전 bootJar 설정

main
jschoi 10 months ago
parent 17bb8868b6
commit 03ac021e2c

@ -0,0 +1,10 @@
FROM openjdk:17-jdk-alpine
MAINTAINER [AutoFlow]
RUN apk --no-cache add tzdata && cp /usr/share/zoneinfo/Asia/Seoul /etc/localtime
RUN mkdir /server
ADD build/libs/autoflow-0.0.1-SNAPSHOT.jar /server/autoflow-0.0.1-SNAPSHOT.jar
WORKDIR /server
ENTRYPOINT ["java", "-jar", "autoflow-0.0.1-SNAPSHOT.jar"]

@ -1,58 +1,74 @@
/*
* This file was generated by the Gradle 'init' task.
*/
plugins {
// Spring Boot
id("org.springframework.boot") version "3.5.3"
// Spring 의존성 관리(BOM)
id("io.spring.dependency-management") version "1.1.7"
// Java 라이브러리, (필요하면) Maven Publish
`java-library`
`maven-publish`
kotlin("jvm")
}
repositories {
mavenLocal()
maven {
url = uri("https://repo.maven.apache.org/maven2/")
group = "kr.re.etri"
version = "0.0.1-SNAPSHOT"
description = "spring-security-refresh-token"
java {
toolchain {
languageVersion.set(JavaLanguageVersion.of(17))
}
}
repositories {
mavenCentral()
}
dependencies {
api(libs.org.springframework.boot.spring.boot.starter.data.jpa)
api(libs.org.springframework.boot.spring.boot.starter.security)
api(libs.org.springframework.boot.spring.boot.starter.web)
api(libs.org.springframework.boot.spring.boot.starter.validation)
api(libs.io.jsonwebtoken.jjwt.api)
api(libs.org.springdoc.springdoc.openapi.starter.webmvc.ui)
runtimeOnly(libs.io.jsonwebtoken.jjwt.impl)
runtimeOnly(libs.io.jsonwebtoken.jjwt.jackson)
runtimeOnly(libs.org.mariadb.jdbc.mariadb.java.client)
testImplementation(libs.org.springframework.boot.spring.boot.starter.test)
testImplementation(libs.org.springframework.security.spring.security.test)
// Spring Boot 스타터들
implementation("org.springframework.boot:spring-boot-starter-web")
implementation("org.springframework.boot:spring-boot-starter-data-jpa")
implementation("org.springframework.boot:spring-boot-starter-security")
implementation("org.springframework.boot:spring-boot-starter-validation")
// JWT
implementation("io.jsonwebtoken:jjwt-api:0.11.5")
runtimeOnly("io.jsonwebtoken:jjwt-impl:0.11.5")
runtimeOnly("io.jsonwebtoken:jjwt-jackson:0.11.5")
// OpenAPI UI
implementation("org.springdoc:springdoc-openapi-starter-webmvc-ui:2.2.0")
// MariaDB 드라이버
runtimeOnly("org.mariadb.jdbc:mariadb-java-client:3.1.4")
// Lombok (선택)
compileOnly("org.projectlombok:lombok:1.18.38")
annotationProcessor("org.projectlombok:lombok:1.18.38")
testCompileOnly("org.projectlombok:lombok:1.18.38")
testAnnotationProcessor("org.projectlombok:lombok:1.18.38")
implementation(kotlin("stdlib-jdk8"))
}
group = "kr.re.etri"
version = "0.0.1-SNAPSHOT"
description = "spring-security-refresh-token"
publishing {
publications.create<MavenPublication>("maven") {
from(components["java"])
}
// 테스트
testImplementation("org.springframework.boot:spring-boot-starter-test")
testImplementation("org.springframework.security:spring-security-test")
}
tasks.withType<JavaCompile>() {
// Java 컴파일 인코딩 및 파라미터 리플렉션 지원
tasks.withType<JavaCompile> {
options.encoding = "UTF-8"
options.compilerArgs.add("-parameters")
}
tasks.withType<Javadoc>() {
// Javadoc 인코딩
tasks.withType<Javadoc> {
options.encoding = "UTF-8"
}
kotlin {
jvmToolchain(21)
// (선택) Maven Publish 설정
publishing {
publications.create<MavenPublication>("maven") {
from(components["java"])
groupId = project.group.toString()
artifactId = project.name
version = project.version.toString()
}
}

@ -3,7 +3,7 @@ spring.datasource.username=cuuva
spring.datasource.password=cuuva
spring.jpa.database-platform=org.hibernate.dialect.MariaDBDialect
spring.jpa.hibernate.ddl-auto=create-only
spring.jpa.hibernate.ddl-auto=none
spring.sql.init.mode=always

@ -1,6 +1,6 @@
-- src/main/resources/data.sql
#
# INSERT INTO tb_role (id, name) VALUES (1, 'ROLE_USER');
# INSERT INTO tb_role (id, name) VALUES (2, 'ROLE_MODERATOR');
# INSERT INTO tb_role (id, name) VALUES (3, 'ROLE_ADMIN');
-- INSERT INTO tb_role (id, name) VALUES (1, 'ROLE_USER');
-- INSERT INTO tb_role (id, name) VALUES (2, 'ROLE_MODERATOR');
-- INSERT INTO tb_role (id, name) VALUES (3, 'ROLE_ADMIN');
#

Loading…
Cancel
Save