diff --git a/Dockerfile b/Dockerfile index a88fc61..68acb36 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,14 +1,6 @@ -FROM rocker/shiny:4.5.2 AS base +FROM rocker/shiny:4.5.2 AS renv-base WORKDIR /app -RUN mkdir -p renv -COPY renv.lock renv.lock -COPY .Rprofile .Rprofile -COPY renv/activate.R renv/activate.R -COPY renv/settings.json renv/settings.json - -RUN mkdir renv/.cache -ENV RENV_PATHS_CACHE=renv/.cache RUN apt-get update && apt-get install -y \ build-essential \ @@ -34,15 +26,43 @@ RUN apt-get update && apt-get install -y \ pandoc \ && rm -rf /var/lib/apt/lists/* +RUN mkdir -p renv +COPY renv.lock renv.lock +COPY .Rprofile .Rprofile +COPY renv/activate.R renv/activate.R +COPY renv/settings.json renv/settings.json + +RUN mkdir -p renv/.cache +ENV RENV_PATHS_CACHE=renv/.cache + RUN R -s -e "renv::restore()" FROM rocker/shiny:4.5.2 WORKDIR /app -COPY --from=base /app/renv /app/renv -COPY --from=base /app/.Rprofile /app/.Rprofile -COPY --from=base /app/renv.lock /app/renv.lock +RUN apt-get update && apt-get install -y \ + libcurl4 \ + libssl3 \ + libxml2 \ + libgdal32 \ + libgeos-c1v5 \ + libproj25 \ + libudunits2-0 \ + libpq5 \ + libfontconfig1 \ + libfreetype6 \ + libharfbuzz0b \ + libfribidi0 \ + libpng16-16 \ + libjpeg62-turbo \ + libtiff6 \ + pandoc \ + && rm -rf /var/lib/apt/lists/* + +COPY --from=renv-base /app/renv /app/renv +COPY --from=renv-base /app/.Rprofile /app/.Rprofile +COPY --from=renv-base /app/renv.lock /app/renv.lock COPY dashboard.Rmd dashboard.Rmd COPY queries.R queries.R @@ -50,4 +70,4 @@ COPY utils.R utils.R EXPOSE 8080 -CMD ["R", "-e", "rmarkdown::run('dashboard.Rmd', shiny_args = list(host = '0.0.0.0', port = 8080))"] +CMD ["R", "-e", "rmarkdown::run('dashboard.Rmd', shiny_args = list(host = '0.0.0.0', port = 8080))"]ROM rocker/shiny:4.5.2 AS base