美文网首页
docker 中的java项目需要调用宿主机上的shell脚本

docker 中的java项目需要调用宿主机上的shell脚本

作者: 我还是老油条 | 来源:发表于2024-03-10 17:18 被阅读0次

问题:项目中的需求:需要java代码调用shell脚本,而且这个java代码部署在docker容器中

直接上解决方案:
例如:在宿主机上有个shell脚本:(/usr/test/script.sh)

启动docker项目的时候添加上命令:( -v /usr/test:/usr/test )

docker run -d \
            -p 28081:28081 \
            -e server.port=28081 \
            -e logging.level.root=info \
         -v /usr/test:/usr/test \
            test_v1.0.tar:latest

启动完成后,容器中就挂载上了/user/test的目录
跟宿主机的一模一样
执行shell

        BufferedInputStream in = null;
        try{

            Process pcs = Runtime.getRuntime().exec("sh /usr/test/script.sh");
            try {
                pcs.waitFor(5, TimeUnit.MINUTES);
            } catch (InterruptedException e) {
                log.error("Execute Shell  has Exception", e.getMessage());
            }
            log.error("Execute ShellTask  finished.");
            // 字符流转换字节流
            String line;
            BufferedReader reader = new BufferedReader(new InputStreamReader(pcs.getInputStream()));
            while ((line = reader.readLine()) != null) {
                log.error("ExecuteShellTask result:", line);
            }
            log.error("Execute ShellTask  result print end.");

        }catch (Exception ex){
            log.error("ShellTask Exception", ex.getMessage());
        }

相关文章

网友评论

      本文标题:docker 中的java项目需要调用宿主机上的shell脚本

      本文链接:https://www.haomeiwen.com/subject/xyypzdtx.html