2013-05-30 2 views
0

Cloudbees에서 지속적인 통합을 설정하고 Jenkins를 실행하고 Grails 애플리케이션을 Cloudfoundry에 배포하려고합니다.'403 Forbidden'Cloudbees에서 Cloudfoundry로 배포하려고 시도합니다.

나는 this blog post의 단계를 따라 갔지만 Jenkins 빌드는 WAR를 Cloudfoundry에 배포하려고 할 때 실패합니다.

예외 메시지는 '403 금지됨 (메모리 용량이 충분하지 않습니다. 2048M)'입니다. Jenkins/Cloudfoundry 배포 구성에서 지정할 수있는 최대 값은 2048MB뿐이므로이 메시지는 나에게 적합하지 않습니다. 메모리 할당량을 1024MB로 줄이려고했지만 여전히 동일한 메시지가 표시됩니다.

Grails Cloudfoundry 플러그인을 사용하여 수동으로 배포하고 단지 1GB로만 실행하면 내 응용 프로그램이 Cloudfoundry에서 아무 문제없이 실행됩니다.

아이디어가 있으십니까?

[cloudbees-deployer:cloudfoundry] Processing matched resources: 9395721 
[cloudbees-deployer:cloudfoundry] done. 
[cloudbees-deployer:cloudfoundry] Setting number of instances... done. 
[cloudbees-deployer:cloudfoundry] Application state: unknown 
[cloudbees-deployer:cloudfoundry] Starting application... 
com.cloudbees.plugins.deployer.exceptions.DeployException: remote file operation failed: /scratch/jenkins/workspace/myApp/target/myApp-0.1.war at [email protected]:s-c0eee604 
    at com.cloudbees.plugins.deployer.engines.Engine.process(Engine.java:162) 
    at com.cloudbees.plugins.deployer.engines.Engine.perform(Engine.java:96) 
    at com.cloudbees.plugins.deployer.DeployPublisher.perform(DeployPublisher.java:95) 
    at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:19) 
    at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:728) 
    at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:703) 
    at hudson.model.Build$BuildExecution.post2(Build.java:183) 
    at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:650) 
    at hudson.model.Run.execute(Run.java:1530) 
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46) 
    at hudson.model.ResourceController.execute(ResourceController.java:88) 
    at hudson.model.Executor.run(Executor.java:237) 
Caused by: hudson.util.IOException2: remote file operation failed: /scratch/jenkins/workspace/myApp/target/myApp-0.1.war at [email protected]:s-c0eee604 
    at hudson.FilePath.act(FilePath.java:877) 
    at hudson.FilePath.act(FilePath.java:863) 
    at com.cloudbees.plugins.deployer.engines.Engine.process(Engine.java:156) 
    ... 11 more 
Caused by: hudson.remoting.ProxyException: org.cloudfoundry.client.lib.CloudFoundryException: 403 Forbidden (Not enough memory capacity, you're allowed: 2048M) 
    at org.cloudfoundry.client.lib.rest.AbstractCloudControllerClient$ErrorHandler.handleError(AbstractCloudControllerClient.java:357) 
    at com.cloudbees.shaded.org.springframework.web.client.RestTemplate.handleResponseError(RestTemplate.java:486) 
    at com.cloudbees.shaded.org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:443) 
    at org.cloudfoundry.client.lib.rest.LoggingRestTemplate.doExecute(LoggingRestTemplate.java:54) 
    at com.cloudbees.shaded.org.springframework.web.client.RestTemplate.execute(RestTemplate.java:401) 
    at com.cloudbees.shaded.org.springframework.web.client.RestTemplate.put(RestTemplate.java:327) 
    at org.cloudfoundry.client.lib.rest.CloudControllerClientV1.doUpdateApplication(CloudControllerClientV1.java:615) 
    at org.cloudfoundry.client.lib.rest.CloudControllerClientV1.startApplication(CloudControllerClientV1.java:342) 
    at com.cloudbees.plugins.deployer.impl.cloudfoundry.EngineImpl$DeployFileCallable.invoke(EngineImpl.java:637) 
    at com.cloudbees.plugins.deployer.impl.cloudfoundry.EngineImpl$DeployFileCallable.invoke(EngineImpl.java:307) 
    at com.cloudbees.plugins.deployer.engines.Engine$FingerprintingWrapper.invoke(Engine.java:248) 
    at com.cloudbees.plugins.deployer.engines.Engine$FingerprintingWrapper.invoke(Engine.java:236) 
    at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2275) 
    at hudson.remoting.UserRequest.perform(UserRequest.java:118) 
    at hudson.remoting.UserRequest.perform(UserRequest.java:48) 
    at hudson.remoting.Request$2.run(Request.java:326) 
    at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72) 
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:166) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    at java.lang.Thread.run(Thread.java:722) 
Build step 'Deploy applications' marked build as failure 
Finished: FAILURE 

답변

1

CloudFoundry v1에서는 배포 된 모든 활성 응용 프로그램에서 총 2048MB의 메모리 사용이 허용됩니다.

이미 일부 응용 프로그램이 배포되어 있고 2048 이상의 전체 메모리를 밀어 넣을 위치를 추가하려고하면이 오류가 표시됩니다.

이 솔루션은 배포 한 응용 프로그램의 수를 줄여 응용 프로그램을 배포하기위한 충분한 여유 메모리를 계정에 확보하는 것입니다.

+0

그건 사실이었습니다. 나는 클라우드 배포가 기존 클라우드 기반 응용 프로그램을 '대체'한다고 생각했습니다. 당신의 도움을 주셔서 감사합니다. – rcgeorge23

관련 문제