Spaces:
Sleeping
Sleeping
File size: 1,710 Bytes
60882c9 5ce08d6 60882c9 539c8b9 60882c9 6cff671 60882c9 3b9402e 6cff671 60882c9 5ce08d6 60882c9 6cff671 | 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 51 52 53 54 55 56 57 58 59 | FROM rocker/shiny:latest
WORKDIR /code
# Install system dependencies in a single layer
RUN apt-get update && apt-get install -y \
libmagick++-dev \
imagemagick \
libcurl4-openssl-dev \
libssl-dev \
libfontconfig1-dev \
libfreetype6-dev \
libharfbuzz-dev \
libfribidi-dev \
libxml2-dev \
libcairo2-dev \
libxt-dev \
fonts-roboto \
cmake \
&& rm -rf /var/lib/apt/lists/*
# Set CRAN mirror once
RUN echo 'options(repos = c(CRAN = "https://cloud.r-project.org"))' > ~/.Rprofile
# Install core R packages first (split into smaller groups)
RUN R -e 'install.packages(c("remotes", "curl", "httr", "jsonlite", "bslib"))'
RUN R -e 'install.packages(c("ggplot2", "dplyr", "grid", "gridExtra", "gtable"))'
RUN R -e 'install.packages(c("patchwork", "readr"))'
# Install magick separately
RUN R -e 'install.packages("magick")'
# Install showtext
RUN R -e 'install.packages("showtext")'
# Install arrow last with optimized settings
ENV ARROW_R_DEV=TRUE
ENV NOT_CRAN=TRUE
# Try binary first, fall back to minimal build
RUN R -e 'tryCatch(install.packages("arrow", INSTALL_opts = "--no-test-load"), \
error = function(e) { \
Sys.setenv(LIBARROW_MINIMAL="true"); \
Sys.setenv(ARROW_WITH_ZLIB="OFF"); \
Sys.setenv(ARROW_WITH_ZSTD="OFF"); \
Sys.setenv(ARROW_WITH_LZ4="OFF"); \
Sys.setenv(ARROW_WITH_SNAPPY="OFF"); \
Sys.setenv(ARROW_WITH_BROTLI="OFF"); \
Sys.setenv(ARROW_WITH_PARQUET="ON"); \
install.packages("arrow", INSTALL_opts = "--no-test-load") \
})'
# Copy app files
COPY . .
# Expose port
EXPOSE 7860
# Run app
CMD ["R", "--quiet", "-e", "shiny::runApp(host='0.0.0.0', port=7860)"] |