Spaces:
Running
Running
File size: 1,898 Bytes
b197f59 4a51467 b197f59 4a51467 b197f59 4a51467 b197f59 fa63964 2bbfee1 b197f59 7cc33ff 3af29ec b197f59 51aacdd | 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 | FROM rocker/shiny:4.5.2
# System dependencies for querychat/sqlite
RUN apt-get update && apt-get install -y \
make \
libssl-dev \
zlib1g-dev \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
# Install remotes for version-pinned installation
RUN R -e "install.packages('remotes', repos='https://cloud.r-project.org')"
# Install CRAN packages with pinned versions
RUN R -e "remotes::install_version('shiny', version = '1.12.1', repos = 'https://cloud.r-project.org')"
RUN R -e "remotes::install_version('bslib', version = '0.10.0', repos = 'https://cloud.r-project.org')"
RUN R -e "remotes::install_version('DT', version = '0.34.0', repos = 'https://cloud.r-project.org')"
RUN R -e "remotes::install_version('dplyr', version = '1.2.0', repos = 'https://cloud.r-project.org')"
RUN R -e "remotes::install_version('RSQLite', repos = 'https://cloud.r-project.org')"
RUN R -e "remotes::install_version('bsicons', version = '0.1.2', repos = 'https://cloud.r-project.org')"
# Install r-universe packages with pinned versions (querychat and dependencies)
RUN R -e "remotes::install_version('ellmer', version = '0.4.0', repos = c('https://posit-dev.r-universe.dev', 'https://cloud.r-project.org'))"
RUN R -e "remotes::install_version('shinychat', version = '0.3.0', repos = c('https://posit-dev.r-universe.dev', 'https://cloud.r-project.org'))"
RUN R -e "remotes::install_version('querychat', version = '0.2.0', repos = c('https://posit-dev.r-universe.dev', 'https://cloud.r-project.org'))"
# Copy application code
COPY app.R app.R
COPY data/ data/
# Verify critical packages are available
RUN R -e "stopifnot(requireNamespace('shiny', quietly = TRUE))" \
&& R -e "stopifnot(requireNamespace('querychat', quietly = TRUE))" \
&& R -e "stopifnot(requireNamespace('RSQLite', quietly = TRUE))"
EXPOSE 7860
CMD ["R", "--quiet", "-e", "shiny::runApp('/app', host='0.0.0.0', port=7860)"] |