carlpett / teamcity-container-cloud

Run TeamCity agents within containers
Apache License 2.0
14 stars 0 forks source link

Failed to start private docker image #11

Closed YuraKril closed 7 years ago

YuraKril commented 7 years ago

Failed to start instance of image "image/image-example:latest"

Docker version 1.10.3,

uds.server.web.CloudController - Failed to start new instance. Failed to start instance of image image/image-example:latest: jetbrains.buildServer.clouds.server.instances.FailedToStartInstanceException: Failed to start instance of image image/image-example:latest [2017-01-18 14:23:32,406] DEBUG [io-8111-exec-35] - uds.server.web.CloudController - Failed to start new instance. Failed to start instance of image image/image-example:latest jetbrains.buildServer.clouds.server.instances.FailedToStartInstanceException: Failed to start instance of image image/image-example:latest at jetbrains.buildServer.clouds.server.impl.instances.StartInstanceAction.startInstance(StartInstanceAction.java:94) at jetbrains.buildServer.clouds.server.impl.CloudManagerFacade.startInstance(CloudManagerFacade.java:184) at jetbrains.buildServer.clouds.server.impl.SecuredCloudManager.startInstance(SecuredCloudManager.java:149) at jetbrains.buildServer.clouds.server.web.CloudController.startInstance(CloudController.java:112) at jetbrains.buildServer.clouds.server.web.CloudController.doHandleInternal(CloudController.java:75) at jetbrains.buildServer.clouds.server.web.CloudController.access$000(CloudController.java:28) at jetbrains.buildServer.clouds.server.web.CloudController$1.apply(CloudController.java:57) at jetbrains.buildServer.clouds.server.web.CloudController$1.apply(CloudController.java:54) at jetbrains.buildServer.util.Util.doUnderContextClassLoader(Util.java:78) at jetbrains.buildServer.clouds.server.web.CloudController.doHandle(CloudController.java:54) at jetbrains.buildServer.controllers.BaseController.handleRequestInternal(BaseController.java:75) at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:147) at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:50) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:961) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:895) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:967) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:869) at javax.servlet.http.HttpServlet.service(HttpServlet.java:650) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:843) at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) at jetbrains.buildServer.maintenance.TeamCityDispatcherServlet.service(TeamCityDispatcherServlet.java:21) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at jetbrains.buildServer.web.DisableSessionIdFromUrlFilter.doFilter(DisableSessionIdFromUrlFilter.java:7) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:107) at jetbrains.buildServer.diagnostic.web.DiagnosticFilter.doFilter(DiagnosticFilter.java:23) at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:112) at jetbrains.buildServer.web.DependencyParametersCalculationContextFilter.doFilter(DependencyParametersCalculationContextFilter.java:1) at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:112) at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:73) at jetbrains.buildServer.web.DelegatingFilter.doFilter(DelegatingFilter.java:11) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at jetbrains.buildServer.web.ResponseFragmentFilter.doFilter(ResponseFragmentFilter.java:10) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:436) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1757) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1716) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745) Caused by: jetbrains.buildServer.clouds.CloudException: Failed to start instance of image image/image-example:latest at se.capeit.dev.containercloud.cloud.ContainerCloudClient.startNewInstance(ContainerCloudClient.java:170) at jetbrains.buildServer.clouds.server.impl.instances.StartInstanceAction.startInstance(StartInstanceAction.java:85) ... 54 more Caused by: jetbrains.buildServer.clouds.CloudException: Failed to start instance of image image/image-example:latest at se.capeit.dev.containercloud.cloud.providers.DockerSocketContainerProvider.startInstance(DockerSocketContainerProvider.java:70) at se.capeit.dev.containercloud.cloud.ContainerCloudClient.startNewInstance(ContainerCloudClient.java:162) ... 55 more Caused by: com.spotify.docker.client.exceptions.ImageNotFoundException: Image not found: image/image-example:latest: ProgressMessage{id=null, status=null, stream=null, error=Error: image image/image-example not found, progress=null, progressDetail=null} at com.spotify.docker.client.LoggingPullHandler.progress(LoggingPullHandler.java:42) at com.spotify.docker.client.ProgressStream.tail(ProgressStream.java:77) at com.spotify.docker.client.DefaultDockerClient.pull(DefaultDockerClient.java:1140) at com.spotify.docker.client.DefaultDockerClient.pull(DefaultDockerClient.java:1114) at com.spotify.docker.client.DefaultDockerClient.pull(DefaultDockerClient.java:1108) at se.capeit.dev.containercloud.cloud.providers.DockerSocketContainerProvider.startInstance(DockerSocketContainerProvider.java:55) ... 56 more

carlpett commented 7 years ago

Hi! Thanks for reporting. Seems the cause is ImageNotFoundException: Image not found: image/image-example:latest. Have you tried pulling that exact image string from the docker host?

YuraKril commented 7 years ago

Hi. Yes, pulling image from docker host extract with Status: Image is up to date for docker.io//

carlpett commented 7 years ago

Ah, it's not a internal private repository, but a auth-required docker.io-repo? Do you have the login-token in the ~/.dockercfg or ~/.docker/config.json files of the user starting the container?

YuraKril commented 7 years ago

Yes, ~/.docker/config.json present

RomanDanyk commented 7 years ago

Hi, all. I have the same issue. I can't launch build agent from a private docker repo. When I using an image from public docker repo then all work fine. My docker version is 1.12.1. Thank you for your plugin. And please fix the problem with using private repos.

carlpett commented 7 years ago

@YuraKril, @RomanDanyk : I've just been able to recreate my development environment (previous laptop broke), and I'm uploading a new release, v0.0.3, within a few minutes which contains a fix. As long as you have a .docker/config.json file with the authentication info, it should now work. Please test and verify!

I don't really consider this implementation final - it should also be possible to set the authentication information in the Teamcity interface - but it should fix the immediate issue until I can touch up the ui.

RomanDanyk commented 7 years ago

@carlpett , thank you for the update. Just now tried to launch build agent with the last version of your plugin. Look like it works. Regards, Roman Danyk

YuraKril commented 7 years ago

@carlpett thank you for release.