Mwa*_*avu 7 r shiny docker shinyproxy
我正在学习如何使用闪亮代理来部署 R 闪亮应用程序,但我不知道将.Renviron包含用于访问数据库的全局变量的文件放置在哪里。
docker 镜像构建时没有任何错误,但是当我使用以下命令启动容器时:
docker run -it -p 3838:3838 shinyproxy-template .
Run Code Online (Sandbox Code Playgroud)
它在文件中找不到 env 变量.Renviron,并且最终在需要全局变量的 R 代码部分出现错误。
我当前的文件夹结构如下:
shinyproxy-template/
|- app-folder/
|- .gitignore
|- Dockerfile
|- README.md
|- app.Rproj
|- Rprofile.site
|- .Renviron
Run Code Online (Sandbox Code Playgroud)
我尝试将.Renviron文件放入然后app-folder/再次构建 Docker 映像,但全局变量仍然无法访问。
我应该将其放置在哪里.Renviron以便应用程序可以访问全局变量?
有多种选择:
.Renviron到容器内的预期位置您可以添加一个COPY命令来Dockerfile将文件复制.Renviron到预期位置 - 即用户的主目录或WORKDIRDockerfile 中定义的位置。如果是 root 用户,则为:
COPY .Renviron /root/
Run Code Online (Sandbox Code Playgroud)
.Renviron到 Dockerfile添加如下行:
ENV VAR1="value1"
ENV VAR2="value2"
Run Code Online (Sandbox Code Playgroud)
给你的Dockerfile
.Renviron到shinyproxy配置中您可以application.yaml使用以下方法在配置文件中定义环境变量
container-env:
VAR1: VALUE1
VAR2: VALUE2
Run Code Online (Sandbox Code Playgroud)
或者
container-env-file: /path/to/.Renviron
Run Code Online (Sandbox Code Playgroud)
为您的应用程序规范。请注意,这里的路径是在主机上,而不是在容器内。
docker rundocker run当您在shinyproxy之外进行操作时,您可以使用--env-file以下参数:
docker run -it -p 3838:3838 shinyproxy-template --env-file /path/to/shinyproxy-template/.Renviron
Run Code Online (Sandbox Code Playgroud)
相关文档链接: