首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在运行R的Docker容器中“无法打开文件'.Renviron‘进行读取”

在运行R的Docker容器中“无法打开文件'.Renviron‘进行读取”
EN

Stack Overflow用户
提问于 2021-03-13 00:08:26
回答 1查看 250关注 0票数 1

我目前正在尝试停靠我编写的RShiny应用程序,但在读取脚本开头的.Renviron变量时遇到问题。下面是我的控制台输出。

代码语言:javascript
复制
❯ docker run --rm -p 6969:6969 r-app

Attaching package: ‘lubridate’

The following objects are masked from ‘package:base’:

    date, intersect, setdiff, union

── Attaching packages ─────────────────────────────────────── tidyverse 1.3.0 ──
✔ ggplot2 3.3.3     ✔ purrr   0.3.4
✔ tibble  3.0.6     ✔ dplyr   1.0.4
✔ tidyr   1.1.2     ✔ forcats 0.5.1
✔ readr   1.4.0
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ lubridate::as.difftime() masks base::as.difftime()
✖ readr::col_factor()      masks scales::col_factor()
✖ lubridate::date()        masks base::date()
✖ purrr::discard()         masks scales::discard()
✖ dplyr::filter()          masks stats::filter()
✖ lubridate::intersect()   masks base::intersect()
✖ dplyr::lag()             masks stats::lag()
✖ lubridate::setdiff()     masks base::setdiff()
✖ lubridate::union()       masks base::union()
Warning message:
In readRenviron(".Renviron") :
  file '.Renviron' cannot be opened for reading
Error: Failed to connect: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Execution halted

下面是我的Dockerfile。.Renviron文件和我的app.R文件在同一个文件夹中,所以我不确定为什么它不能打开它。

代码语言:javascript
复制
FROM rocker/verse:latest

# Install Ubuntu packages
RUN apt-get update && apt-get install -y \
    sudo \
    gdebi-core \
    pandoc \
    pandoc-citeproc \
    libcurl4-gnutls-dev \
    libcairo2-dev \
    libxt-dev \
    libssl-dev

# Download and install ShinyServer
RUN wget --no-verbose --no-check-certificate https://download3.rstudio.org/ubuntu-14.04/x86_64/shiny-server-1.5.7.907-amd64.deb && \
    gdebi shiny-server-1.5.7.907-amd64.deb

RUN R -e "install.packages('lubridate', repos='http://cran.rstudio.com/')"
RUN R -e "install.packages('RMariaDB', repos='http://cran.rstudio.com/')"
RUN R -e "install.packages('scales', repos='http://cran.rstudio.com/')"
RUN R -e "install.packages('shiny', repos='http://cran.rstudio.com/')"
RUN R -e "install.packages('stringr', repos='http://cran.rstudio.com/')"
RUN R -e "install.packages('tidyverse', repos='http://cran.rstudio.com/')"

# Copy configuration files into the Docker image
#COPY shiny-server.sh /usr/bin/shiny-server.sh
#COPY ttp-internal-reporting.Rproj /srv/shiny-server/
#COPY app.R /srv/shiny-server/
#COPY .Renviron /srv/shiny-server/
COPY . /srv/shiny-server/

# select port
EXPOSE 6969

CMD ["Rscript", "srv/shiny-server/app.R"]

互联网上确实没有太多的文档或示例可以读取eschew化应用程序的.Renviron文件,我不想避免使用这个文件,因为它包含用于获取数据的数据库凭据。任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

发布于 2021-08-26 21:03:16

代码语言:javascript
复制
FROM rocker/r-ubuntu:20.04

RUN apt-get update && apt-get upgrade -y && apt-get clean

RUN apt-get install -y \
            libssl-dev \
            libcurl4-openssl-dev \
            && apt-get clean

RUN R -e 'install.packages("curl")'

RUN R -e 'install.packages("usethis")'

COPY .Renviron /root/.Renviron

在运行R命令时,使用此映像和此Dockerfile文件,在复制后的下一层中,它将识别.Renviron中设置的变量

例如,如果我在.Renviron中插入了GITHUB_PAT,那么在接下来的几层中,我可以从我的github安装我自己的私有包

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66603343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档