diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/native/container-executor/test/utils/test_docker_util.cc b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/native/container-executor/test/utils/test_docker_util.cc index f57413e066f..1263af85499 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/native/container-executor/test/utils/test_docker_util.cc +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/native/container-executor/test/utils/test_docker_util.cc @@ -1073,9 +1073,27 @@ namespace ContainerExecutor { struct configuration container_cfg, cmd_cfg; struct args buff = ARGS_INITIAL_VALUE; int ret = 0; - std::string container_executor_cfg_contents = "[docker]\n docker.trusted.registries=hadoop\n " - "docker.allowed.rw-mounts=/opt,/var,/usr/bin/cut,/usr/bin/awk\n " - "docker.allowed.ro-mounts=/etc/passwd"; + + ret = create_ce_file(); + if (ret != 0) { + std::cerr << "Could not create ce file, skipping test" << std::endl; + return; + } + + char *ce_dir_path = realpath("../etc/hadoop", NULL); + + std::string allowed_rw_mounts; + allowed_rw_mounts.append("docker.allowed.rw-mounts=/opt,/var,/usr/bin/cut,/usr/bin/awk,"); + if (ce_dir_path != NULL && strlen(ce_dir_path) != 0) { + allowed_rw_mounts.append(ce_dir_path); + } + allowed_rw_mounts.append("\n "); + + std::string container_executor_cfg_contents = "[docker]\n docker.trusted.registries=hadoop\n "; + container_executor_cfg_contents.append(allowed_rw_mounts); + container_executor_cfg_contents.append("docker.allowed.ro-mounts=/etc/passwd"); + + std::vector > file_cmd_vec; file_cmd_vec.push_back(std::make_pair( "[docker-command-execution]\n docker-command=run\n image=hadoop/image\n mounts=/var:/var:rw", "-v /var:/var:rw"));