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:

  • How to convert docker-compose setup to docker image?
  • How to configure gitlab for gradle multimodule project
  • How to docker-compose run in windows?
  • SonarQube server can not be reached by Jenkins using Docker
  • Django on Docker - relation “django_session” does not exist at character 109
  • docker-compose postgresql implementation in python app
  • 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?

  • web server running inside a docker container running inside an EC2 instance responses very slowly
  • Error in gdata::installXLSXsupport() on Docker Centos 7
  • Error when installing docker-compose using ansible-playbook
  • docker - in production - HA
  • Running a copy of docker container
  • How to run built Docker image made by docker-compose?
  • 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.