diff --git a/src/main/kotlin/com/dcd/server/core/common/file/FileContent.kt b/src/main/kotlin/com/dcd/server/core/common/file/FileContent.kt index cf12cc1e..d615ddcc 100644 --- a/src/main/kotlin/com/dcd/server/core/common/file/FileContent.kt +++ b/src/main/kotlin/com/dcd/server/core/common/file/FileContent.kt @@ -47,12 +47,21 @@ object FileContent { ${getEnvString(env)} """.trimIndent() - fun getImageVersionShellScriptContent(imageName: String, minVersion: String): String = + fun getH2DBDockerFileContent(version: String, port: Int, env: Map): String = """ + FROM oscarfonts/h2:${version} + EXPOSE $port + ${getEnvString(env)} + """.trimIndent() + + fun getImageVersionShellScriptContent(imageName: String, minVersion: String): String { + val imagePrefix = if (imageName.contains("/")) "" else "library/" + + return """ #!/bin/bash # 이미지, 페이지 사이즈, 최소 버전(threshold) 설정 - IMAGE_NAME="library/$imageName" + IMAGE_NAME="${imagePrefix}$imageName" PAGE_SIZE=100 MIN_VERSION="$minVersion" @@ -100,6 +109,7 @@ object FileContent { echo "${'$'}sorted_numeric_tags" fi """.trimIndent() + } fun getApplicationHttpConfig(application: Application, domain: String): String = """ diff --git a/src/main/kotlin/com/dcd/server/core/domain/application/model/enums/ApplicationType.kt b/src/main/kotlin/com/dcd/server/core/domain/application/model/enums/ApplicationType.kt index 64f30e55..f5ff9d0f 100644 --- a/src/main/kotlin/com/dcd/server/core/domain/application/model/enums/ApplicationType.kt +++ b/src/main/kotlin/com/dcd/server/core/domain/application/model/enums/ApplicationType.kt @@ -5,5 +5,6 @@ enum class ApplicationType { NEST_JS, MYSQL, MARIA_DB, - REDIS + REDIS, + H2_DB } \ No newline at end of file diff --git a/src/main/kotlin/com/dcd/server/core/domain/application/service/impl/CreateDockerFileServiceImpl.kt b/src/main/kotlin/com/dcd/server/core/domain/application/service/impl/CreateDockerFileServiceImpl.kt index c26938e0..bf07eaf5 100644 --- a/src/main/kotlin/com/dcd/server/core/domain/application/service/impl/CreateDockerFileServiceImpl.kt +++ b/src/main/kotlin/com/dcd/server/core/domain/application/service/impl/CreateDockerFileServiceImpl.kt @@ -80,6 +80,9 @@ class CreateDockerFileServiceImpl( ApplicationType.NEST_JS -> FileContent.getNestJsDockerFileContent(version, application.port, applicationEnv) + + ApplicationType.H2_DB -> + FileContent.getH2DBDockerFileContent(version, application.port, applicationEnv) } try { if (!file.exists()) diff --git a/src/main/kotlin/com/dcd/server/core/domain/application/service/impl/GetApplicationVersionServiceImpl.kt b/src/main/kotlin/com/dcd/server/core/domain/application/service/impl/GetApplicationVersionServiceImpl.kt index fd86627c..60159ee4 100644 --- a/src/main/kotlin/com/dcd/server/core/domain/application/service/impl/GetApplicationVersionServiceImpl.kt +++ b/src/main/kotlin/com/dcd/server/core/domain/application/service/impl/GetApplicationVersionServiceImpl.kt @@ -17,6 +17,7 @@ class GetApplicationVersionServiceImpl( ApplicationType.MARIA_DB -> "mariadb" to "10" ApplicationType.MYSQL -> "mysql" to "8" ApplicationType.REDIS -> "redis" to "6" + ApplicationType.H2_DB -> "oscarfonts/h2" to "0" } val getVersionScript = FileContent.getImageVersionShellScriptContent(baseImageName, minVersion) return commandPort.executeShellCommandWithResult(getVersionScript)