result

前段时间看到有人在问怎么让自己的shiny程序让别人能够看到,今天来写篇文章总结

一.在同一局域网内

在同一局域网内的话很简单只要对方能访问到你的ip和shiny端口就行,直接访问就行

先看下两台机子的ip

跑shiny服务的主机一般是你自己的机子

macip

访问你应用的主机

windowsip

可以看到在同一网段内的!

部署shiny应用

这边的话要自己指定host为0.0.0.0,不然默认是127.0.0.1,那别人是访问不到的

runApp("Downloads/csfz/wenjianshangchuan/test1/app.R",port = 7777,host="0.0.0.0")

可以看到在本机127可以访问,而在另一台上也可以,注意这边访问的地址

macshiny

windowsshiny

所以这种方式的话在局域网内是很容易实现的!!

二.在服务器上部署

在服务器上部署的话就很方便共享啦

第一种方式是去先在服务器上部署shinyServer,然后把你的shiny工程放入他的默认目录下就可以了。安装过程的话网上随便一搜就有了。

第二种方式的话是使用docker,个人比较推荐的,方便快捷拿来就用。

安装docker(docker应用还是很广的,装一下准没错)

去dockerhub找一下shiny相关的镜像

这边简单点直接docker pull 这个镜像,然后docker exec 或 run 进入容器,然后进入R进行install.packages 安装你的shiny应用所需要的包

第二种的话比较推荐,还是出于方便部署的原因,去github上把这个镜像的工程目录git下来然后修改Dockerfile

docker pull quantumobject/docker-shiny

docker run -d -p 3838:3838 -v :/srv/shiny-server -ti quantumobject/docker-shiny /bin/bash

进去后输入R,然后安装你需要的依赖包就行

修改dockerfile,主要是在安装包那边把你的包加上,然后把repos改成清华的,为了速度。(这边是我加了我的demo的包,各位按需加就行)

#name of container: docker-shiny

#version of container: 0.6.1

FROM quantumobject/docker-baseimage:18.04

MAINTAINER willnight "willnight@yeah.net"

# Update the container

# Installation of necessary packages/software for this container...

RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y -q r-base \

r-base-dev \

libssl-dev \

libsasl2-dev \

gdebi-core \

libapparmor1 \

sudo \

libssl1.0.0 \

libcurl4-openssl-dev \

&& apt-get clean \

&& rm -rf /tmp/* /var/tmp/* \

&& rm -rf /var/lib/apt/lists/*

RUN R -e "install.packages('shiny', repos='https://mirrors.tuna.tsinghua.edu.cn/CRAN/')" \

&& update-locale \

&& wget https://download3.rstudio.org/ubuntu-14.04/x86_64/shiny-server-1.5.9.923-amd64.deb \

&& dpkg -i --force-depends shiny-server-1.5.9.923-amd64.deb \

&& rm shiny-server-1.5.9.923-amd64.deb \

&& mkdir -p /srv/shiny-server; sync \

&& mkdir -p /srv/shiny-server/examples; sync \

&& cp -R /usr/local/lib/R/site-library/shiny/examples/* /srv/shiny-server/examples/.

RUN R -e "install.packages('rmarkdown', repos='https://mirrors.tuna.tsinghua.edu.cn/CRAN/')"

RUN R -e "install.packages(c('devtools','shinydashboard','shinythemes','DT','openssl','formattable','readxl','mongolite','lubridate','glue','openxlsx','shinydashboardPlus','shinyWidgets'), repos='https://mirrors.tuna.tsinghua.edu.cn/CRAN/')"

RUN R -e "devtools::install_github('nik01010/dashboardthemes')"

##startup scripts

#Pre-config scrip that may be needed to be run one time only when the container run the first time .. using a flag to don't

#run it again ... use for conf for service ... when run the first time ...

RUN mkdir -p /etc/my_init.d

COPY startup.sh /etc/my_init.d/startup.sh

RUN chmod +x /etc/my_init.d/startup.sh

##Adding daemons to containers

RUN mkdir /etc/service/shiny-server /var/log/shiny-server ; sync

COPY shiny-server.sh /etc/service/shiny-server/run

RUN chmod +x /etc/service/shiny-server/run \

&& cp /var/log/cron/config /var/log/shiny-server/ \

&& chown -R shiny /var/log/shiny-server \

&& sed -i '113 a

Other examples of Shiny application

' /srv/shiny-server/index.html

#volume for Shiny Apps and static assets. Here is the folder for index.html (link) and sample apps.

VOLUME /srv/shiny-server

# to allow access from outside of the container to the container service

# at the ports to allow access from firewall if accessing from outside the server.

EXPOSE 3838

# Use baseimage-docker's init system.

CMD ["/sbin/my_init"]

测试运行

上面的步骤做完运行就很简单了

docker run -d -p 3838:3838 -v /root/Myrpro/:/srv/shiny-server myshiny

效果 http://120.78.66.186:3838/test1/

最后如果测试成功后可以通过docker-compose 或者 k8s进行部署。

shiny改写服务器文件,Shiny生产环境部署与共享相关推荐

  1. Spring Boot 最佳实践(二)集成Jsp与生产环境部署

    一.简介 提起Java不得不说的一个开发场景就是Web开发,也是Java最热门的开发场景之一,说到Web开发绕不开的一个技术就是JSP,因为目前市面上仍有很多的公司在使用JSP,所以本文就来介绍一下S ...

  2. 如何让nginx执行python代码_生产环境部署Python语言代码(django+uwsgi+nginx)

    本文主要向大家介绍了生产环境部署Python语言代码(django+uwsgi+nginx),通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. 基础环境不做介绍,在django开发w ...

  3. Django + Uwsgi + Nginx 实现生产环境部署1

    项目开发完毕后,需要将代码放到服务器上,这样用户才能访问.接下来我们一步一步来进行一波部署操作. 1. 简单粗暴 项目开发完毕,在部署之前需要再配置文件中将 ALLOWED_HOSTS配置设置为:当前 ...

  4. 深度学习TensorFlow生产环境部署(环境准备篇)

    最近在研究Tensorflow Serving生产环境部署,尤其是在做服务器GPU环境部署时,遇到了不少坑.特意总结一下,当做前车之鉴. 1 系统背景 系统是ubuntu16.04 ubuntu@ub ...

  5. python生产环境部署

    文章目录 一.前言 二.准备工作 三.安装python 四.安装虚拟环境 一.前言 在实际工作中,很多公司的生产环境都是隔离外网的,而且往往多个项目组共用相同的服务器,因此经常会遇到两个问题: pyt ...

  6. 11-02 生产环境部署 部署微电影网站

    生产环境部署 关键点: 安装依赖包 关闭调试模式   app.debug = False 修改mysql数据库连接,导入数据 开启多个端口后台运行 配置nginx反向代理 安装依赖包 步骤1: 获取依 ...

  7. JAVA开发与运维(web生产环境部署)

    web生产环境部署,往往是分布式,和开发环境或者测试环境我们一般使用单机不同. 一.部署内容 1.后端服务 2.后台管理系统vue 3.小程序 二.所需要服务器 5台前端服务器 8台后端服务 三.所需 ...

  8. 使用二进制包在生产环境部署 Kubernetes v1.13.2 集群

    文章目录 使用二进制包在生产环境部署 Kubernetes v1.13.2 集群 一 背景 二 环境及架构图 2.1 软件环境 2.2 服务器规划 2.3 节点或组件功能简介 2.4 Kubernet ...

  9. SpringBoot与ElasticSearch、ActiveMQ、RocketMQ的整合及多环境配置、响应式框架WebFlux、服务器端主动推送SSE技术、生产环境部署、Actuator监控平台

    1.SpringBoot 与 ElasticSearch 框架的整合 (1)主要的搜索框架:MySQL.Solr.ElasticSearch MySQL:使用 like 进行模糊查询,存在性能问题 S ...

  10. Linux高级实战部署--LNMP生产环境部署(mysql,nginx,php编译安装,项目部署)

    LNMP生产环境部署 一.编译安装 MySQL MySQL 类型 #### 1.MySQL Community Server - MySQL Community Server是社区版本,开源免费,但不 ...

最新文章

  1. pyqt designer connect无响应_【JavaWeb】HTTP协议的请求与响应
  2. PP模块入门考试试题,看看能得多少分吧!
  3. 【Python基础】如何编写简洁美观的Python代码
  4. BZOJ 1085 [SCOI2005]骑士精神 【A*启发式搜索】
  5. 如何判断一条曲线是否自己相交?
  6. C和指针之字符操作(<ctype.h>)
  7. 北邮计算机学院 王小捷,王小捷智能科学与技术中心北京邮电大学.pdf
  8. i40e驱动安装方法
  9. C语言中-是什么意思啊?比如说 p=p-next 到底表达了什么意思,请说清楚点,还有-这个符号是一个整体吗,什么意思??...
  10. 2019微博热点,盘一盘那些记忆中的大瓜
  11. illumina 二代测序原理及过程
  12. win10注册mysql到windows服务报错:Install/Remove of the Service Denied
  13. 蓝牙HC05模块探究-设置AT指令
  14. Qt Windows DPI适配
  15. 孩子一看学习就上瘾,不信试试看(ZT)
  16. git push origin master和git push有什么区别
  17. matlab中resample重采样函数
  18. 基于腾讯信鸽推送平台详细说明
  19. 中信银行信用卡服务较差,现在连交易的短信通知也取消了!!!
  20. rtmp拉流转http-flv输出

热门文章

  1. 【正点原子STM32】delay.c文件里关于fac_us=SystemCoreClock/8000000的讲解
  2. 使用Intellij来实践测试驱动开发 TDD Kata
  3. Java给pdf添加页码(这是我之前的一篇文章)出现内存溢出Java heap space
  4. 【Linux】排查进程、挖矿病毒查找
  5. java排查full gc_FullGC排查心得
  6. 【步兵 经验篇】one step
  7. 怎样设置电脑宽带连接无线路由器设置路由器连接服务器,电脑设置无线路由器断线后自动连接的方法...
  8. 堆漏洞挖掘中的malloc_consolidate与FASTBIN_CONSOLIDATION_THRESHOLD
  9. 手机开热点免流教程(ROOT版)
  10. 谷歌大数据三大论文中文版和英文版合集