当前位置: 首页 > article >正文

shinyproxy部署R语言shiny APP

shinyproxy部署shiny APP经验谈

shinyAPP 是成熟的web APP框架,依靠R语言的数据分析功能可以构建功能丰富的,外表美观的web APP,但是APP部署是shiny APP最大的瓶颈,免费部署途径有诸多的限制,收费的部署方式价格昂贵。
shinyproxy是最后的解决方案,开源,免费且功能够用。按照shinyproxy的官方文档进行实际操作,最终实现了将shiny APP部署在网络上,在此向大家介绍其中的心得和体会。

准备:

  1. 我的环境
    Linux ubuntu22.04

  2. 安装docker
    docker类似shinyproxy的后台程序,按照文档的介绍常规安装docker即可。

  3. 安装shinyproxy
    按照文档(链接)安装shinyproxy,安装的.deb格式的shinyproxy,这种安装方式明确指明了application.yml的位置,是以后增加APP时需要修改的内容,并且不用增加专门的用户,比如shinyproxy。
    shinyproxy文档开头介绍通过.jar的形式安装shinyproxy,但是application.yml 的位置不明确,且需要增加shinyproxy用户,可能仅仅是一种体验,不适合实际部署(个人体会,不一定正确)。
    通过以上过程,shinyproxy被授权访问docker 镜像,将docker和shinyproxy关联在一起,以上过程是自动的,不需要再手动调整,当有新的app想加入的时候,仅仅修改application.yml即可。
    在这里插入图片描述
    图1. application.yml例子

运行

  1. 制作docker镜像
    docker镜像的制作的参数都存储在Dockerfile中,可以根据shinyproxy提供的Dockfile模板来进行个性化的调整。
    镜像制作过程中,遇到的问题是不能从docker_hub上拉取基础镜像,即FROM 命令后面的镜像,作为解决的方法,使用github上的DockerTarBuilder项目将基础镜像下载到本地,解压后通过“sudo docker load 基础镜像名称”来载入,之后可以在基础镜像的基础上构建自己的APP镜像。注意,这个过程中可以将基础镜像的版本更新到最新,避免可能的R包冲突。
    在这里插入图片描述
    图2 Dockerfile例子
  2. 在shinyproxy上展示docker镜像
    构建好镜像之后就可以需要修改application.yml上的设定,使新增加的docker APP镜像可以展示在shiny’proxy界面上,需要修改的部分如下图所示。在这里插入图片描述
    经过以上操作,一切顺利的话已经可以在自己的浏览器上访问新构建的APP。
    总体再说,shinyproxy的部署难度不大,多数时间花在构建docker镜像,一个粗略的尝试,希望对大家有所帮助。

http://www.kler.cn/a/310677.html

相关文章:

  • ORA-01092 ORA-14695 ORA-38301
  • Redis五种数据类型剖析
  • windows下qt5.12.11使用ODBC远程连接mysql数据库
  • 深入解析Hadoop:大数据处理的基石
  • 移远通信亮相骁龙AI PC生态科技日,以领先的5G及Wi-Fi产品革新PC用户体验
  • 【数据结构】线性表——链表
  • C++:字符串string转成整型int
  • 数据结构一:绪论
  • linux-系统管理与监控-日志管理
  • 本地不能訪問linux的kafka服務
  • 研1日记14
  • 【数据结构】排序算法---冒泡排序
  • 【JVM GC核心参数】JVM原理,JAVA 各种垃圾回收器的核心参数,JAVA GC回收器参数配置,核心参数说明
  • 二百六十四、Java——Java采集Kafka主题A的JSON数据,解析成一条条数据,然后写入Kafka主题B中
  • 数组学习内容
  • Agent:原理与快速构建 | 人工智能 | Langchain | Python ——学习笔记
  • 使用 Fairseq 进行音频预训练:配置与实现
  • 设计模式之命令模式:从原理到实战,深入解析及源码应用
  • xml中SQL执行错误(使用另外一张表的两个字段,组装SQL的where查询条件)
  • 阿里巴巴搜索API返回值:电商市场竞争的新武器含
  • 动态规划---回文子串
  • 55 mysql 的登录认证流程
  • 掌握MATLAB中的数据类型转换技巧
  • 21. 什么是MyBatis中的N+1问题?如何解决?
  • qt信号与槽(自定义)
  • 手势识别-Yolov5模型-自制数据集训练