Using ENV variables in daemonized Docker running RStudio

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 ropensci@github.com
RUN git config --global user.name $USERNAME
RUN git config --global user.email $EMAIL

Great. When I launch an interactive session:

  • Docker Elasticsearch Plugin with Request
  • Unable to build docker from root
  • Docker for Mac. docker run -d -p 80:80 --name webserver nginx shows another container with this name. but docker ps shows empty list
  • Meteor, docker and SSL on localhost
  • 403 Forbidden - Nginx, Docker & Windows
  • Docker compose hangs when installing kerberos
  • docker run -it --env USERNAME="Carl" --env EMAIL=cboettig@example.com 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=cboettig@example.com 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?

  • How to pass -mem to dockerized Play application
  • How to link from docker-compose to Amazon RDS
  • Webdriver exception: “chrome not reachable”
  • How to change nginx-proxy settings
  • How to run multiple agents in multiple Minecraft environment with python threading in docker container?
  • Docker Swarm : How to setup multiple containers on same volume
  • One Solution collect form web for “Using ENV variables in daemonized Docker running RStudio”

    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=cboettig@example.com cboettig/ropensci-docker bash -c "cp /.gitconfig /home/rstudio; /usr/bin/supervisord"
    

    It works!

    rstudio

    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"]
    
    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.