querychat_demo / Dockerfile
fmegahed's picture
Update Dockerfile
2381525 verified
FROM rocker/shiny:4.5.2
# System dependencies for querychat/duckdb
RUN apt-get update && apt-get install -y \
libcurl4-openssl-dev \
libssl-dev \
libxml2-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('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'))"
RUN R -e "remotes::install_version('duckdb', version = '1.4.4', repos = 'https://cloud.r-project.org')"
RUN R -e "remotes::install_version('RSQLite', version = '2.4.5', repos = '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))"
EXPOSE 7860
CMD ["R", "--quiet", "-e", "shiny::runApp('/app', host='0.0.0.0', port=7860)"]