如何在云服务器部署R plumber Api



  • 我打算在云服务器部署一个plumber api,来把R的功能用url的形式计算出来。用于前端。

    整个过程还是比较费劲的,写个帖子记录下来。

    在尝试了自己在CentOS上装R并且安装plumber的过程,我觉得太费劲了,安装plumber一直报错。于是,我决定回到docker的怀抱。

    参考plumber官方的这篇文章 https://www.rplumber.io/articles/hosting.html

    docker pull rstudio/plumber
    docker run --rm -p 8000:8000 rstudio/plumber
    

    成功安装了plumber的image并且成功运行,运行后在浏览器http://49.234.103.189:8000/docs/可以看到plumber的documentation。因为这里我没有用我自己的R文件,所以出现的是image里面默认的一个api的界面。

    然后我自己做了一个plumber的R文件,放到了云服务器的目录my_path下,假设自己plumber文件的文件名是api.R,运行下列代码

    cd my_path
    docker run --rm --name new_plumber -p 8000:8000 -v `pwd`/api.R:/plumber.R -d rstudio/plumber /plumber.R
    

    需要注意的是所有需要安装的包都需要写在这个R script前面。例如

    install.packages("tvm")
    library(tvm)
    # 自己的代码
    

登录后回复