🚀 배포
📖 배포란?
배포는 개발한 애플리케이션을 실제 운영 환경에서 실행하는 과정입니다. Docker를 사용하면 어디서든 동일하게 실행할 수 있습니다!
💡 JAR 빌드
build.gradle.kts 설정
plugins {
application
kotlin("jvm") version "1.9.0"
id("io.ktor.plugin") version "2.3.5"
}
application {
mainClass.set("com.example.ApplicationKt")
}
ktor {
fatJar {
archiveFileName.set("app.jar")
}
}
빌드 명령
# JAR 파일 생성
./gradlew buildFatJar
# 실행
java -jar build/libs/app.jar
🎯 환경 설정
application.conf
ktor {
deployment {
port = 8080
port = ${?PORT} # 환경 변수 우선
}
application {
modules = [ com.example.ApplicationKt.module ]
}
}
database {
url = "jdbc:postgresql://localhost:5432/mydb"
url = ${?DATABASE_URL}
user = "admin"
user = ${?DATABASE_USER}
password = "password"
password = ${?DATABASE_PASSWORD}
}
환경 변수 사용
fun Application.module() {
val dbUrl = environment.config.property("database.url").getString()
val dbUser = environment.config.property("database.user").getString()
val dbPassword = environment.config.property("database.password").getString()
Database.connect(
url = dbUrl,
user = dbUser,
password = dbPassword
)
routing {
get("/health") {
call.respondText("OK")
}
}
}