在运行RStudio的守护程序Docker中使用ENVvariables

我能够build立一个默认的ENVvariables的Dockerfile ,然后我可以在运行我的docker容器时configuration,例如在一个Dockerfile我有行:

ENV USERNAME ropensci ENV EMAIL ropensci@github.com RUN git config --global user.name $USERNAME RUN git config --global user.email $EMAIL 

大。 当我启动互动会议时:

 docker run -it --env USERNAME="Carl" --env EMAIL=cboettig@example.com myimage /bin/bash 

然后,我可以发出命令git config --list ,看到git被configuration为使用我在命令行上提供的值而不是默认值。

但是,我的Dockerfile也被configuration为运行一个RStudio服务器,然后我可以在Daemon模式下运行镜像时login到浏览器中:

 docker run -d -p 8787:8787 --env USERNAME="Carl" --env EMAIL=cboettig@example.com cboettig/ropensci-docker 

我去本地主机:8787,并login到RStudio所有预期的工作,启动一个新的“项目”启用了Git,但后来RStudio找不到我的Git名称和电子邮件。 我可以从RStudio菜单打开shell并运行git config --listecho $USERNAME ,我只是得到一个空值。 为什么这对/ bin / bash工作而不是来自RStudio,我该如何解决?

你的gitconfiguration在/.gitconfig上设置。 这个configuration文件是为root用户。 您需要为rstudio用户设置gitconfiguration,因为rstudio在rstudio用户上运行。 以下命令是一个临时解决scheme。

 docker run -it -p 8787:8787 --env USERNAME="Carl" --env EMAIL=cboettig@example.com cboettig/ropensci-docker bash -c "cp /.gitconfig /home/rstudio; /usr/bin/supervisord" 

有用!

rstudio

另一个解决scheme是写Dockerfile是基于cboettig / ropensci-docker。 以下是示例Dockerfile。

 FROM cboettig/ropensci-docker RUN cp /.gitconfig /home/rstudio CMD ["/usr/bin/supervisord"] 
Interesting Posts