docs: function(datum) {
      return Promise.retry(function() {
        if (getId(datum)) {
          return docker.inspect(getId(datum));
        }
        else if (datum.compose) {
          return compose.getId(datum.compose, datum.project, datum.opts)
          .then(function(id) {
            if (!_.isEmpty(id)) {
              // @todo: this assumes that the container we want
              // is probably the first id returned. What happens if that is
              // not true or we need other ids for this service?
              var ids = id.split('\n');
              return docker.inspect(_.trim(ids.shift()));
            }
          });
        }
      });
    }