File size: 1,178 Bytes
992f008
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
FROM rocker/shiny:4.6.0

# querychat, ellmer, and RSQLite need these system libraries;
# libuv1t64 is missing from rocker/shiny:4.6.0 but its fs package needs it
RUN apt-get update && apt-get install -y --no-install-recommends \
    libcurl4-openssl-dev libssl-dev libxml2-dev libuv1t64 \
    && rm -rf /var/lib/apt/lists/*

# One dated CRAN snapshot so every build installs the same versions
RUN echo 'options(repos = c(CRAN = "https://p3m.dev/cran/__linux__/noble/2026-09-01"))' \
    >> /usr/local/lib/R/etc/Rprofile.site

# DT is a Suggests of querychat but app_obj() needs it at runtime; ggsql powers the visualize tool
RUN R -q -e "install.packages(c('shiny', 'bslib', 'DBI', 'RSQLite', 'ellmer', 'shinychat', 'querychat', 'DT', 'ggsql'))"

# Fail the build now, not at runtime, if anything is missing
RUN R -q -e "stopifnot(requireNamespace('querychat'), requireNamespace('RSQLite'), requireNamespace('DT'), requireNamespace('ggsql'), requireNamespace('fs')); cat(R.version.string, as.character(packageVersion('querychat')), '\n')"

WORKDIR /app
COPY app.R app.R
COPY data/ data/

EXPOSE 7860
CMD ["R", "-q", "-e", "shiny::runApp('/app', host = '0.0.0.0', port = 7860)"]