|
1 | | -FROM rocker/r-ver:4.4.2 |
2 | | -RUN apt-get update && apt-get install -y cmake libz-dev libcurl4-openssl-dev libssl-dev |
3 | | -RUN R -e 'install.packages("remotes")' |
4 | | -RUN Rscript -e 'remotes::install_version("adegenet",upgrade="never", version = "2.1.10")' |
5 | | -RUN Rscript -e 'remotes::install_version("curl",upgrade="never", version = "6.0.1")' |
6 | | -RUN Rscript -e 'remotes::install_version("DT",upgrade="never", version = "0.33")' |
7 | | -RUN Rscript -e 'remotes::install_version("dplyr",upgrade="never", version = "1.1.4")' |
8 | | -RUN Rscript -e 'remotes::install_version("vcfR",upgrade="never", version = "1.15.0")' |
9 | | -RUN Rscript -e 'remotes::install_version("ggplot2",upgrade="never", version = "3.5.1")' |
10 | | -RUN Rscript -e 'remotes::install_version("tidyr",upgrade="never", version = "1.3.1")' |
11 | | -RUN Rscript -e 'remotes::install_version("curl",upgrade="never", version = "6.0.1")' |
12 | | -RUN Rscript -e 'remotes::install_version("shiny",upgrade="never", version = "1.9.1")' |
13 | | -RUN Rscript -e 'remotes::install_version("config",upgrade="never", version = "0.3.2")' |
14 | | -RUN Rscript -e 'remotes::install_version("bs4Dash",upgrade="never", version = "2.3.4")' |
15 | | -RUN Rscript -e 'remotes::install_version("golem",upgrade="never", version = "0.5.1")' |
16 | | -RUN Rscript -e 'remotes::install_version("purrr",upgrade="never", version = "1.0.2")' |
17 | | -RUN Rscript -e 'remotes::install_version("markdown",upgrade="never", version = "1.13")' |
18 | | -RUN Rscript -e 'remotes::install_version("scales",upgrade="never", version = "1.3.0")' |
19 | | -RUN Rscript -e 'remotes::install_version("plotly",upgrade="never", version = "4.10.4")' |
20 | | -RUN Rscript -e 'remotes::install_version("shinyWidgets",upgrade="never", version = "0.8.7")' |
21 | | -RUN Rscript -e 'remotes::install_version("shinyjs",upgrade="never", version = "2.1.0")' |
22 | | -RUN Rscript -e 'remotes::install_version("shinydisconnect",upgrade="never", version = "0.1.1")' |
23 | | -RUN Rscript -e 'remotes::install_version("shinyalert",upgrade="never", version = "3.1.0")' |
24 | | -RUN Rscript -e 'remotes::install_version("stringr",upgrade="never", version = "1.5.1")' |
25 | | -RUN Rscript -e 'remotes::install_version("updog",upgrade="never", version = "2.1.5")' |
26 | | -RUN Rscript -e 'remotes::install_version("AGHmatrix",upgrade="never", version = "2.1.4")' |
27 | | -RUN Rscript -e 'remotes::install_version("factoextra",upgrade="never", version = "1.0.7")' |
28 | | -RUN Rscript -e 'remotes::install_version("httr",upgrade="never", version = "1.4.7")' |
29 | | -RUN Rscript -e 'remotes::install_version("future",upgrade="never", version = "1.34.0")' |
30 | | -RUN Rscript -e 'remotes::install_version("shinycssloaders",upgrade="never", version = "1.1.0")' |
31 | | -RUN Rscript -e 'remotes::install_version("RColorBrewer",upgrade="never", version = "1.1.3")' |
32 | | -RUN Rscript -e 'remotes::install_version("tibble",upgrade="never", version = "3.2.1")' |
33 | | -RUN Rscript -e 'remotes::install_version("rrBLUP",upgrade="never", version = "4.6.3")' |
34 | | -RUN Rscript -e 'remotes::install_version("MASS",upgrade="never", version = "7.3.60.2")' |
35 | | -RUN Rscript -e 'remotes::install_version("Matrix",upgrade="never", version = "1.7.0")' |
36 | | -RUN Rscript -e 'remotes::install_version("matrixcalc",upgrade="never", version = "1.0.6")' |
37 | | -RUN Rscript -e 'remotes::install_github("Breeding-Insight/BIGr",upgrade="never")' |
38 | | -RUN Rscript -e 'remotes::install_github("jendelman/GWASpoly",upgrade="never")' |
| 1 | +# syntax=docker/dockerfile:1.7 |
| 2 | +# Buildx/Actions will pass BASE_IMAGE as a manifest tag that covers both arches |
| 3 | +ARG BASE_IMAGE=docker.io/breedinginsight/bigapp-deps:r4.5-bioc3.21-2025-08 |
| 4 | +FROM ${BASE_IMAGE} |
39 | 5 |
|
40 | | -RUN mkdir /build_zone |
41 | | -ADD . /build_zone |
42 | | -WORKDIR /build_zone |
43 | | -RUN R -e 'remotes::install_local(upgrade="never")' |
44 | | -RUN rm -rf /build_zone |
45 | | -EXPOSE 80 |
46 | | -CMD R -e "options('shiny.port'=80,shiny.host='0.0.0.0');BIGapp::run_app()" |
| 6 | +SHELL ["/bin/bash","-eo","pipefail","-c"] |
| 7 | +ENV DEBIAN_FRONTEND=noninteractive TZ=UTC |
| 8 | +ENV MAKEFLAGS="-j2" R_PKG_INSTALL_ARGS="--no-build-vignettes --no-manual" |
| 9 | + |
| 10 | +# App install (only your code changes should rebuild this layer) |
| 11 | +WORKDIR /app |
| 12 | +COPY DESCRIPTION /app/ |
| 13 | +# COPY NAMESPACE /app/ # if present, include for better cache hits |
| 14 | +COPY . /app |
| 15 | +RUN R -q -e "remotes::install_local('.', upgrade='never', dependencies=TRUE, \ |
| 16 | + INSTALL_opts=c('--no-build-vignettes','--no-manual'))" |
47 | 17 |
|
| 18 | +# Runtime |
| 19 | +RUN useradd -m appuser |
| 20 | +USER appuser |
| 21 | +WORKDIR /app |
| 22 | +EXPOSE 80 |
| 23 | +HEALTHCHECK --interval=30s --timeout=5s --retries=5 \ |
| 24 | + CMD wget -qO- http://localhost:${PORT:-80}/ || exit 1 |
| 25 | +CMD ["R","-q","-e","options(shiny.port=as.integer(Sys.getenv('PORT','80')), shiny.host='0.0.0.0'); BIGapp::run_app()"] |
0 commit comments