Update Dockerfile
Browse files- Dockerfile +5 -2
Dockerfile
CHANGED
|
@@ -33,7 +33,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
| 33 |
libfribidi-dev \
|
| 34 |
&& rm -rf /var/lib/apt/lists/*
|
| 35 |
|
| 36 |
-
ARG DOCKERFILE_REV=2026-03-04-
|
| 37 |
|
| 38 |
RUN echo "asa-api docker revision: ${DOCKERFILE_REV}"; \
|
| 39 |
set -eux; \
|
|
@@ -51,7 +51,9 @@ RUN echo "asa-api docker revision: ${DOCKERFILE_REV}"; \
|
|
| 51 |
/opt/conda/bin/conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/r; \
|
| 52 |
/opt/conda/bin/conda update -n base -c defaults conda
|
| 53 |
|
| 54 |
-
RUN R -q -e "
|
|
|
|
|
|
|
| 55 |
|
| 56 |
ARG ASA_SOFTWARE_REPO=https://github.com/cjerzak/asa-software
|
| 57 |
ARG ASA_SOFTWARE_REF=main
|
|
@@ -59,6 +61,7 @@ ARG ASA_SOFTWARE_REF=main
|
|
| 59 |
RUN git clone --depth 1 --branch "${ASA_SOFTWARE_REF}" "${ASA_SOFTWARE_REPO}" /opt/asa-software \
|
| 60 |
&& R -q -e "remotes::install_local('/opt/asa-software/asa', dependencies = TRUE, upgrade = 'never')" \
|
| 61 |
&& R -q -e "asa::build_backend(conda_env='asa_env', python_version='3.12', check_browser=FALSE, fix_browser=FALSE)" \
|
|
|
|
| 62 |
&& rm -rf /opt/asa-software/.git
|
| 63 |
|
| 64 |
WORKDIR /app
|
|
|
|
| 33 |
libfribidi-dev \
|
| 34 |
&& rm -rf /var/lib/apt/lists/*
|
| 35 |
|
| 36 |
+
ARG DOCKERFILE_REV=2026-03-04-r-failfast-1
|
| 37 |
|
| 38 |
RUN echo "asa-api docker revision: ${DOCKERFILE_REV}"; \
|
| 39 |
set -eux; \
|
|
|
|
| 51 |
/opt/conda/bin/conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/r; \
|
| 52 |
/opt/conda/bin/conda update -n base -c defaults conda
|
| 53 |
|
| 54 |
+
RUN R -q -e "options(repos = c(CRAN = 'https://cloud.r-project.org')); pkgs <- c('remotes','plumber','jsonlite','reticulate'); install.packages(pkgs); missing <- pkgs[!vapply(pkgs, function(p) requireNamespace(p, quietly = TRUE), logical(1))]; if (length(missing)) stop(sprintf('Missing required R packages after install: %s', paste(missing, collapse = ', ')), call. = FALSE); cat('R package gate passed:', paste(pkgs, collapse = ', '), '\n'); cat('R library paths:', paste(.libPaths(), collapse = ' | '), '\n'); cat('plumber version:', as.character(packageVersion('plumber')), '\n')"
|
| 55 |
+
|
| 56 |
+
RUN R -q -e "gate <- c('plumber','jsonlite','reticulate'); missing <- gate[!vapply(gate, function(p) requireNamespace(p, quietly = TRUE), logical(1))]; if (length(missing)) stop(sprintf('Runtime gate failed; missing: %s', paste(missing, collapse = ', ')), call. = FALSE)"
|
| 57 |
|
| 58 |
ARG ASA_SOFTWARE_REPO=https://github.com/cjerzak/asa-software
|
| 59 |
ARG ASA_SOFTWARE_REF=main
|
|
|
|
| 61 |
RUN git clone --depth 1 --branch "${ASA_SOFTWARE_REF}" "${ASA_SOFTWARE_REPO}" /opt/asa-software \
|
| 62 |
&& R -q -e "remotes::install_local('/opt/asa-software/asa', dependencies = TRUE, upgrade = 'never')" \
|
| 63 |
&& R -q -e "asa::build_backend(conda_env='asa_env', python_version='3.12', check_browser=FALSE, fix_browser=FALSE)" \
|
| 64 |
+
&& R -q -e "gate <- c('asa','plumber','jsonlite','reticulate'); missing <- gate[!vapply(gate, function(p) requireNamespace(p, quietly = TRUE), logical(1))]; if (length(missing)) stop(sprintf('Post-asa gate failed; missing: %s', paste(missing, collapse = ', ')), call. = FALSE); cat('Post-asa package gate passed\n')" \
|
| 65 |
&& rm -rf /opt/asa-software/.git
|
| 66 |
|
| 67 |
WORKDIR /app
|