SpringBoot 整合docker,执行容器服务

我使用以下文章的镜像作为演示镜像,读者有自己的镜像可以使用自己的
TencentARC/GFPGAN人脸恢复Ubuntu-22.04搭建(附带Docker镜像)_tencentarc gfpgan-CSDN博客

1. 封装springboot 启动docker容器的方法

   public String runDockerCommand(String[] command) {StringBuilder result = new StringBuilder();try {// 使用 ProcessBuilder 执行命令ProcessBuilder processBuilder = new ProcessBuilder(command);processBuilder.redirectErrorStream(true);  // 将标准错误重定向到标准输出Process process = processBuilder.start();// 读取容器内的执行日志并打印到控制台BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));String line;log.info("====== Docker logs start ======");while ((line = reader.readLine()) != null) {log.info(line);  // 打印日志到控制台}log.info("====== Docker logs end  ======");// 等待进程执行完毕int exitCode = process.waitFor();if (exitCode != 0) {throw new RuntimeException("Docker 命令执行失败,退出代码: " + exitCode);}} catch (Exception e) {e.printStackTrace();return "Docker 命令执行失败: " + e.getMessage();}return result.toString();  // 返回执行日志}

2. 构造启动docker容器的启动命令,并调用启动docker容器的方法

此方法参数可以根据自己镜像所需修改参数

  • inputPath为输入目录,如果用我的镜像的话就需要这个目录下有图片
  • outputPath为图片清晰生成目录
    public void runGFPGAN(String inputPath,String outputPath) {// 定义 Docker 命令,使用传入的参数String[] command = {"docker", "run", "--rm","-v", outputPath + ":/workspace/GFPGAN/results","-v", inputPath + ":/workspace/GFPGAN/inputs/whole_imgs","-e", "INPUT_PATH=/workspace/GFPGAN/inputs/whole_imgs","-e", "OUTPUT_PATH=/workspace/GFPGAN/results","registry.cn-hangzhou.aliyuncs.com/zr-dev/tencentarc:v1.0"};// 执行 Docker 命令this.runDockerCommand(command);}

3. 启动测试

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/143215.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

如何使用ssm实现基于WEB的文学网的设计与实现+vue

TOC ssm626基于WEB的文学网的设计与实现vue 第一章 绪论 1.1研究背景与意义 在科学技术水平还比较低下的时期,相关行业通常采用人工登记的方式对相关的文学信息进行记录,而后对这些信息记录进行管理和控制。这种采用纸质存储信息的管理模式&#xff…

rocky9.2的lvs的NAT模式下的基本使用的详细示例

文章目录 前言什么是LVS?(Linux Virtual Server)LVS的组成1. 负载均衡器(Load Balancer)2. 后端服务器池(Real Servers)3. IPVS(IP Virtual Server)4. 调度算法(Schedul…

论文阅读 | 基于流模型和可逆噪声层的鲁棒水印框架(AAAI 2023)

Flow-based Robust Watermarking with Invertible Noise Layer for Black-box DistortionsAAAI, 2023,新加坡国立大学&中国科学技术大学本论文提出一种基于流的鲁棒数字水印框架,该框架采用了可逆噪声层来抵御黑盒失真。 一、问题 基于深度神经网络…

Nginx从入门到入土(二): 学习内容与安装

Nginx学习内容 1.理解Nginx在实际项目中的应用场景 2.理解正向代理和反向代理 3.Nginx在Linux和Windows上的安装 4.Nginx的运行模型概念与日志管理 5.Nginx.config核心配置文件与配置HTTPS证书 6.基于Nginx解决跨域,实现防盗链,缓存,压…

【深度学习实战—11】:基于Pytorch实现谷歌QuickDraw数据集的下载、解析、格式转换、DDP分布式训练、测试

✨博客主页:王乐予🎈 ✨年轻人要:Living for the moment(活在当下)!💪 🏆推荐专栏:【图像处理】【千锤百炼Python】【深度学习】【排序算法】 目录 😺〇、仓库…

DevEco Profiler调优工具(一)

一、Profiler调优工具简介 设备应用选择区:选择调优设备(目前仅支持真机),进程列表及当前应用进程 会话列表区:已创建的调优分析任务,单击某会话数据区显示其调优内容;选择设备和进程后&#xf…

高原生态系统揭秘:食物网结构揭示食肉动物共存机制

凌恩推出eDNA多营养级联合分析助您攻克高原生境中不同营养级物种群落关联机制研究难题 北京大学姚蒙团队在《Current Biology》期刊上(IF9.2)发表了关于青藏高原食肉动物的食物网结构及其共存机制和群落构成的文章。该研究通过分析青藏高原三种食肉动物群落中食肉动物的食性&a…

从HarmonyOS升级到HarmonyOS NEXT-环信SDK数据迁移

前言:2024年6月21日 HarmonyOS NEXT (后续称之为 NEXT) 正式发布,随着 NEXT 稳定版的逐渐临近,各个应用及SDK正在忙于适配 NEXT 系统,同样也面临着系统升级时如何对数据的迁移适配。本文通过使用环信 SDK 介…

本地连线上Redis访问不通

可能原因: 1、服务器没有开放 Redis的默认端口:6379 2、在服务器中添加访问规则 3、修改Redis的配置 修改宝塔中Redis的配置文件: redis配置修改: 1、requirepass是用来设置访问密码的 2、注释bind 127.0.0.1:改为 bind 0.0.0.0…

Redis - 深入理解Redis事务

目录 Redis是如何实现事务的?事务中执行的命令出现错误,会回滚事务吗?同一个连接可以重复开启事务吗?多个客户端同时开启事务会怎样?使用Redis事务只用MULTI和EXEC吗?Redis中的WATCH机制是怎么实现的&#…

在 Stable Diffusion 1.5 中 Lora, Dreambooth, Textual Inversion的详解指北

Lora, Dreambooth and Textual Inversion 说明 您是否想象过您可爱的宠物与埃菲尔铁塔合影的画面,或者想象过如何生成一张带有您朋友面孔的人工智能图像? 是的,通过稳定扩散技术的微调,这完全是可能的! 创建这些场景…

设备稳定流畅视频体验,乐鑫ESP32-S3芯片方案无线音视频传输通信

在快节奏的现代生活中,家庭安全和便利性成为了人们日益关注的话题。随着物联网技术的发展,智能家居安全系统正逐渐成为守护家庭的新选择。 家居安全如门锁和警报器,这些产品通过先进的传感器、摄像头和智能分析技术,不仅能够实时…

vulnhub-prime1

目录 靶场环境解题过程 靶场环境 项目ip靶机(prime)未知攻击机(kali)10.128.129.128 解题过程 打开靶机,我们只能看见一个登录界面,上面只有半截提示 我们首先要做的是主机发现,因为是网络适…

Flag_AGtivity_clear_top网页编程指南如何退出多activity程序

activity的启动模式:FLAG_ACTIVITY_CLEAR_TOP和FLAG_ACTIVITY_REORDER_TO_FRONT。 1. 如果已经启动了四个Activity:A,B,C和D。在D Activity里,我们要跳到B Activity,同时希望C finish掉,可以在start…

安卓好软-----跳过app应用开屏广告的小工具 无需root权限

工具特点; 软件很小。而且权限不多。无需root权限。测试效果还是不错的 应用利用了安卓系统的辅助功能API,可以读取您手机屏幕上显示的所有内容,并且可以以您的名义进行屏幕点击等操作。 * 轻量无广告,不联网,也不需要任…

PostgreSQL技术内幕11:PostgreSQL事务原理解析-MVCC

文章目录 0.简介1.MVCC介绍2.MVCC常见的实现方式3.PG的MVCC实现3.1 可见性判断3.2 提交/取消 0.简介 本文主要介绍在事务模块中MVCC(多版本并发控制)常见的实现方式,优缺点以及PG事务模块中MVCC(多版本并发控制)的实现。 1.MVCC…

香港科技大学工学院2025/2026年度硕士研究生(MSc)项目招生宣讲会——哈尔滨工业大学(深圳)

🔔香港科技大学工学院2025/2026年度硕士研究生(MSc)项目招生宣讲会 🕙时间:2024年9月24日(星期二) 19:00 🏠地点:哈尔滨工业大学(深圳)T5栋教学楼603室 🎆2…

如何在ubuntu中安装code-server搭建一个在线编程环境

code-server 是一个开源项目,它允许你在浏览器中运行 Visual Studio Code。通过 code-server,你可以远程访问一个运行 Visual Studio Code 的服务器,并在任何设备上使用浏览器来编辑代码。这使得你可以在轻量级设备上(如平板电脑或…

HDMI色块移动——FPGA学习笔记13

一、方块移动原理 二、实验任务 使用FPGA开发板上的HDMI接口在显示器上显示一个不停移动的方块,要求方块移动到边界处时能够改变移动方向。显示分辨率为800*480,刷新速率为90hz。(480p分辨率为800*480,像素时钟频率Vga_clk 800x4…

EmguCV学习笔记 VB.Net 11.9 姿势识别 OpenPose

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 EmguCV是一个基于OpenCV的开源免费的跨平台计算机视觉库,它向C#和VB.NET开发者提供了OpenCV库的大部分功能。 教程VB.net版本请访问…