Reputation: 12677
I am able to set up a Dockerfile with default ENV variables that I can then configure when running my docker container, e.g. in a Dockerfile I have the lines:
ENV USERNAME ropensci
ENV EMAIL [email protected]
RUN git config --global user.name $USERNAME
RUN git config --global user.email $EMAIL
Great. When I launch an interactive session:
docker run -it --env USERNAME="Carl" --env [email protected] myimage /bin/bash
I can then issue the command git config --list
and see that git is configured to use the values I provided on the command line instead of the defaults.
However, my Dockerfile is also configured to run an RStudio server that I can then log into in the browser when running the image in Daemon mode:
docker run -d -p 8787:8787 --env USERNAME="Carl" --env [email protected] cboettig/ropensci-docker
I go to localhost:8787 and log in to RStudio which all works as expected, start a new "Project" with git enabled, but then RStudio cannot find my git name & email. I can open the shell from the RStudio menu and run git config --list
or echo $USERNAME
and I just get a blank value. Why does this work for /bin/bash but not from RStudio and how do I fix it?
Upvotes: 3
Views: 2212
Reputation: 3522
Your git config is set on /.gitconfig. This config file is for root user. You need to set git config for rstudio user because rstudio run on rstudio user. Below command is a temporary solution.
docker run -it -p 8787:8787 --env USERNAME="Carl" --env [email protected] cboettig/ropensci-docker bash -c "cp /.gitconfig /home/rstudio; /usr/bin/supervisord"
It works!
Another solution is writing Dockerfile is based on cboettig/ropensci-docker. Below is sample Dockerfile.
FROM cboettig/ropensci-docker
RUN cp /.gitconfig /home/rstudio
CMD ["/usr/bin/supervisord"]
Upvotes: 2