diff --git a/src/main/kotlin/com/dcd/server/core/domain/application/service/impl/RefreshApplicationServiceImpl.kt b/src/main/kotlin/com/dcd/server/core/domain/application/service/impl/RefreshApplicationServiceImpl.kt index 93d1b8a4..3755912c 100644 --- a/src/main/kotlin/com/dcd/server/core/domain/application/service/impl/RefreshApplicationServiceImpl.kt +++ b/src/main/kotlin/com/dcd/server/core/domain/application/service/impl/RefreshApplicationServiceImpl.kt @@ -19,7 +19,7 @@ class RefreshApplicationServiceImpl( private val deleteApplicationDirectoryService: DeleteApplicationDirectoryService, private val queryVolumePort: QueryVolumePort ) : RefreshApplicationService { - @Lock("#application.id", waitTime = 1000 * 10, leaseTime = 1000 * 60 * 3) + @Lock("#application.id", waitTime = 1000 * 10, leaseTime = 1000 * 60 * 30) override suspend fun refresh(application: Application) { val applicationType = application.applicationType when(applicationType) { diff --git a/src/main/kotlin/com/dcd/server/infrastructure/global/thirdparty/docker/DockerCommandExecutor.kt b/src/main/kotlin/com/dcd/server/infrastructure/global/thirdparty/docker/DockerCommandExecutor.kt index 57132896..2da91dbc 100644 --- a/src/main/kotlin/com/dcd/server/infrastructure/global/thirdparty/docker/DockerCommandExecutor.kt +++ b/src/main/kotlin/com/dcd/server/infrastructure/global/thirdparty/docker/DockerCommandExecutor.kt @@ -182,7 +182,7 @@ class DockerCommandExecutor( override fun buildImage(application: Application) { val dockerfilePath = "./${application.directoryName}/Dockerfile" try { - dockerClient.buildImageCmd() + val completed = dockerClient.buildImageCmd() .withDockerfile(java.io.File(dockerfilePath)) .withTags(setOf("${application.containerName}:${application.version}")) .exec(object : BuildImageResultCallback() { @@ -191,7 +191,12 @@ class DockerCommandExecutor( super.onNext(item) } }) - .awaitCompletion(120, java.util.concurrent.TimeUnit.SECONDS) + .awaitCompletion(30, TimeUnit.MINUTES) + if (!completed) { + throw DockerCommandException(application, FailureCase.IMAGE_BUILD_FAILURE, "이미지 빌드중 타임아웃이 발생함.") + } + } catch (e: DockerCommandException) { + throw e } catch (e: Exception) { throw DockerCommandException(application, FailureCase.IMAGE_BUILD_FAILURE, e.message) }