FROM rocker/shiny:latest WORKDIR /code # System deps for common R packages + OpenMP (xgboost) RUN apt-get update && apt-get install -y \ libcurl4-openssl-dev \ libssl-dev \ libxml2-dev \ libmagick++-dev \ libpng-dev \ libjpeg-dev \ libtiff-dev \ libfontconfig1-dev \ libharfbuzz-dev \ libfribidi-dev \ libfreetype6-dev \ libgit2-dev \ libgomp1 \ && rm -rf /var/lib/apt/lists/* # Use binary Arrow when available ENV LIBARROW_BINARY=true # Install CRAN packages (includes your new libraries) RUN install2.r --error --skipinstalled \ shiny \ shinydashboard \ DT \ dplyr \ ggplot2 \ tidyr \ stringr \ scales \ maps \ mapproj \ arrow \ readr \ xgboost \ tidyverse \ bslib \ htmltools \ shinyWidgets \ grid \ gridExtra \ magick \ gt # Optional: gtExtras (if you still use it) RUN R -e "install.packages('remotes'); remotes::install_github('jthomasmock/gtExtras')" COPY . /code EXPOSE 7860 CMD ["R", "--quiet", "-e", "shiny::runApp('/code', host='0.0.0.0', port=7860)"]