[ 
https://issues.apache.org/jira/browse/JCLOUDS-1162?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15605354#comment-15605354
 ] 

ASF subversion and git services commented on JCLOUDS-1162:
----------------------------------------------------------

Commit c10540b04dadd08ac1d4d397276c346e03f45e91 in jclouds's branch 
refs/heads/master from [~kwart]
[ https://git-wip-us.apache.org/repos/asf?p=jclouds.git;h=c10540b ]

[JCLOUDS-1162] DockerComputeServiceAdapter shouldn't remove container if it 
stops with non-zero exit code quickly after start. The commit also adds feature 
which prints container logs into JClouds Compute Log during Node destroy if the 
TRACE log level is enabled


> DockerComputeServiceAdapter hides cause of container startup failure
> --------------------------------------------------------------------
>
>                 Key: JCLOUDS-1162
>                 URL: https://issues.apache.org/jira/browse/JCLOUDS-1162
>             Project: jclouds
>          Issue Type: Improvement
>          Components: jclouds-compute
>    Affects Versions: 2.0.0
>            Reporter: Josef Cacek
>
> When Docker container startup fails, then the cause is not visible for users, 
> because the container is immediately destroyed.
> I see 2 possible solutions/improvements here:
> * add a container config option to not remove the container if the start 
> fails (or another possible behavior is to not remove the container at all)
> * if container start fails, then read container logs 
> ({{ContainerApi.attach(String, AttachOptions)}}) and log them on some 
> suitable level (IMO somewhere between DEBUG and WARN).
> Following code comes from {{DockerComputeServiceAdapter}} and is responsible 
> for the current behavior:
> {code}
>       logger.debug(">> starting container(%s) with hostConfig(%s)", 
> container.id(), hostConfig);
>       api.getContainerApi().startContainer(container.id(), hostConfig);
>       logger.trace("<< started(%s)", container.id());
>       container = api.getContainerApi().inspectContainer(container.id());
>       if (container.state().exitCode() != 0) {
>          destroyNode(container.id());
>          throw new IllegalStateException(String.format("Container %s has not 
> started correctly", container.id()));
>       }
> // ....
>    @Override
>    public void destroyNode(String id) {
>       api.getContainerApi().removeContainer(id, 
> RemoveContainerOptions.Builder.force(true));
>    }
> {code}
> [~nacx] Which solution do you prefer (config option to not remove container, 
> logging the container logs, both options)?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to