forked from docsteveharris/try-ofelia
-
Notifications
You must be signed in to change notification settings - Fork 3
/
dockerfile-rstudio
51 lines (42 loc) · 1.8 KB
/
dockerfile-rstudio
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# Use the tidyverse image which comes with RStudio server
# https://hub.docker.com/r/rocker/tidyverse
FROM rocker/tidyverse:4.0.4
# Packages to enable ODBC and installation of the Microsoft drivers via curl
RUN apt-get update -y && apt-get install -y \
curl \
freetds-bin \
freetds-dev \
git \
gnupg2 \
odbc-postgresql \
tdsodbc \
unixodbc \
unixodbc-dev \
tzdata
# See about installing ODBC drivers here: https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server-2017
RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
# Note that the driver version installed needs to match the version used in the code
# Here debian stretch (as per tidyverse:4)
RUN curl https://packages.microsoft.com/config/debian/9/prod.list > /etc/apt/sources.list.d/mssql-release.list
RUN apt-get update -y
RUN ACCEPT_EULA=Y apt-get install -y msodbcsql17 mssql-tools
COPY odbc/* /etc/
# Permissions are such that works fine as root but not from RStudio where user is not root
# so MUST do the following else an unhelpful error message tells you the file does not exist
RUN chmod a+rw /etc/odbc.ini && chmod a+rw /etc/odbcinst.ini
# https://www.rocker-project.org/use/extending/
# install core libraries including renv for package management
RUN install2.r odbc renv
RUN mkdir /home/rstudio/renv
ENV RENV_PATHS_CACHE=/home/rstudio/renv
RUN Rscript -e 'renv::consent(provided = TRUE); renv::init(bare=TRUE)'
# this is necessary for the rstudio instance to work
RUN mkdir /home/rstudio/dev
COPY .Renviron /home/rstudio
COPY .Rprofile /home/rstudio
# this allows installation from the commandline
ENV http_proxy=$(http_proxy)
ENV https_proxy=$(https_proxy)
ENV HTTP_PROXY=$(HTTP_PROXY)
ENV HTTPS_PROXY=$(HTTPS_PROXY)
ENV UID=$UID