fmegahed/structured_text_extraction
1
1FROM rocker/shiny:4.5.22 3# Install system dependencies for R packages4# - libcurl4-openssl-dev, libssl-dev: for httr2/curl (ellmer dependency)5# - libxml2-dev: for xml26# - libpoppler-cpp-dev: for pdftools (PDF text and page rendering)7# - libmagick++-dev: for magick (ellmer resizes images with it before sending them)8# - libfontconfig1-dev, libfreetype6-dev: for magick text rendering9RUN apt-get update && apt-get install -y \10 libcurl4-openssl-dev \11 libssl-dev \12 libxml2-dev \13 libpoppler-cpp-dev \14 libmagick++-dev \15 libfontconfig1-dev \16 libfreetype6-dev \17 && rm -rf /var/lib/apt/lists/*18 19WORKDIR /code20 21# Install remotes package first, then install specific versions of required packages.22# The last line fails the build if any of them cannot be loaded.23RUN R -e "install.packages('remotes', repos = 'https://cloud.r-project.org')" \24 && R -e "remotes::install_version('shiny', version = '1.13.0', repos = 'https://cloud.r-project.org')" \25 && R -e "remotes::install_version('jsonlite', version = '2.0.0', repos = 'https://cloud.r-project.org')" \26 && R -e "remotes::install_version('ellmer', version = '0.5.0', repos = 'https://cloud.r-project.org')" \27 && R -e "remotes::install_version('pdftools', version = '3.7.0', repos = 'https://cloud.r-project.org')" \28 && R -e "remotes::install_version('magick', version = '2.9.1', repos = 'https://cloud.r-project.org')" \29 && R -e "remotes::install_version('base64enc', version = '0.1-6', repos = 'https://cloud.r-project.org')" \30 && R -e "for (p in c('shiny', 'jsonlite', 'ellmer', 'pdftools', 'magick', 'base64enc')) library(p, character.only = TRUE)"31 32# Copy only what the app needs (tests, .env and .git are also excluded by .dockerignore)33COPY app.R ./34COPY R/ ./R/35COPY config/ ./config/36COPY www/ ./www/37 38CMD ["R", "--quiet", "-e", "shiny::runApp(host='0.0.0.0', port=7860)"]39 