Uploaded image for project: 'jclouds'
  1. jclouds
  2. JCLOUDS-1162

DockerComputeServiceAdapter hides cause of container startup failure

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 2.0.0
    • 2.0.0
    • jclouds-compute

    Description

      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:

            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));
         }
      

      nacx Which solution do you prefer (config option to not remove container, logging the container logs, both options)?

      Attachments

        Activity

          People

            Unassigned Unassigned
            kwart Josef Cacek
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: