我正在学习如何使用shinyproxy部署Rshiny 的应用程序,但我不知道在哪里放置.Renviron文件,其中包含用于访问数据库的全局变量.

docker映像生成时没有任何错误,但在启动容器时使用:

docker run -it -p 3838:3838 shinyproxy-template .

它在.Renviron文件中找不到env变量,我最终在需要全局变量的R代码部分出错.

我当前的文件夹 struct 如下:

shinyproxy-template/
                   |- app-folder/
                   |- .gitignore
                   |- Dockerfile
                   |- README.md
                   |- app.Rproj
                   |- Rprofile.site
                   |- .Renviron

我try 将.Renviron文件放在app-folder/中,然后再次构建docker映像,但全局变量仍然无法访问.

我应该在哪里放置.Renviron,以便应用程序访问全局变量?

推荐答案

有多个选项:

Put .Renviron file to the expected location inside the container

您可以向Dockefile中添加COPY命令,将.Renviron文件复制到预期位置,即用户的主目录或WORKDIR位置(如果在Dockerfile中定义).对于root用户,它将是:

COPY .Renviron /root/

Add environment variables from .Renviron to the Dockerfile

添加行,如:

ENV VAR1="value1"
ENV VAR2="value2"

到您的Dockerfile

Add environment variables from .Renviron to the shinyproxy configuration

您可以使用以下任一方法在application.yaml配置文件中定义环境变量

container-env:
  VAR1: VALUE1
  VAR2: VALUE2

container-env-file: /path/to/.Renviron

f或 your app specification. Note that the path here is on the host and not inside the container.

F或 docker run

当您在shinyproxy之外计算docker run时,可以使用参数--env-file,例如:

docker run -it -p 3838:3838 shinyproxy-template --env-file /path/to/shinyproxy-template/.Renviron

相关文档链接:

R相关问答推荐

extract()函数不处理stanfit对象,我用错了吗?

使用gggplot 2在R中正确表示翻转堆叠条形图中的数据

Facet_wrap具有不同bin宽度值的图表

逐行替代引用前一行的for循环

根据列中的数字移动单元格位置

将Multilinetring合并到一个线串中,使用sf生成规则间隔的点

使用ggplot将平滑线添加到条形图

R:连接值,而不是变量?

整数成随机顺序与约束R?

R for循环返回到先前值

如何写一个R函数来旋转最后n分钟?

如何在格子中添加双曲曲线

如何在R中对深度嵌套的tibbles中的非空连续行求和?

根据列表中项目的名称合并数据框和列表

在R中创建连续的期间

WRS2包中带有bwtrim的简单ANOVA抛出错误

创建列并对大型数据集中的特定条件进行成对比较的更高效程序

为什么这个表格格罗布不打印?

使用ifElse语句在ggploy中设置aes y值

Ggplot2如何找到存储在对象中的残差和拟合值?