private int runShellCmd(String shellFunc) throws Exception {
   String script =
       jointShellCmd(
           task.getDomain(),
           task.getKernelVersion(),
           config.getContainerType().toString(),
           shellFunc);
   int exitCode = scriptExecutor.exec(script, logOut, logOut);
   return exitCode;
 }
  private void doInjectPhoenixLoader() throws Exception {
    File serverXml = config.getServerXml();
    if (serverXml == null || !serverXml.exists()) {
      throw new RuntimeException("container server.xml not found");
    }

    File kernelDocBase =
        new File(
            String.format(
                config.getKernelDocBasePattern(), task.getDomain(), task.getKernelVersion()));
    String domainDocBasePattern =
        String.format(config.getDomainDocBaseFeaturePattern(), task.getDomain());
    ServerXmlUtil.attachPhoenixContextLoader(
        serverXml, domainDocBasePattern, config.getLoaderClass(), kernelDocBase);
  }