FROM r-base:4.5.3
# Install system dependencies needed to build the package and render docs
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
libcurl4-openssl-dev \
libxml2-dev \
libssl-dev \
pandoc \
gifski \
ffmpeg \
&& rm -rf /var/lib/apt/lists/*
# Install a minimal R package build tool if needed (roxygen2 for docs is optional when building from source via R CMD INSTALL)
RUN R -e "if(!require('roxygen2', quietly = TRUE)) install.packages('roxygen2', repos='https://cloud.r-project.org')"
WORKDIR /gganimate
COPY . .
# Build the package from source
RUN R CMD INSTALL . --no-multiarch --with-keep.source
# Simple runtime check to verify the package loads
CMD ["R", "-e", "cat('gganimate built. version=', utils::packageVersion('gganimate'), '\n'); invisible(0)"]
# Exclude version control and temporary files from the docker build context .git .github .Rproj.user .Rhistory .RData .RData.tmp renv/library renv/cache node_modules build/ pkgdown/ vignettes/ docs/ *.tar.gz *.rds *.Rproj *.Rproj.user *.Rhistory *.RData *.RData.tmp
# Exclude version control and temporary files from the docker build context .git .github .Rproj.user .Rhistory .RData .RData.tmp renv/library renv/cache node_modules build/ pkgdown/ vignettes/ docs/ *.tar.gz *.rds *.Rproj *.Rproj.user *.Rhistory *.RData *.RData.tmp
Concerns: Missing build tools (e.g., build-essential, gcc, make) in the image; R CMD INSTALL from source will likely fail to compile gganimate without a compiler., FROM r-base:4.5.3 may reference a non-existent tag for the r-base image; verify the tag exists on Docker Hub or use a confirmed valid version., No explicit validation of a successful build beyond the simple runtime message; consider adding a more thorough runtime check (e.g., running a small gganimate example) to ensure functionality.
FROM r-base:4.5.3
# Install system dependencies needed to build the package and render docs
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
build-essential \
libcurl4-openssl-dev \
libxml2-dev \
libssl-dev \
pandoc \
gifski \
ffmpeg \
&& rm -rf /var/lib/apt/lists/*
# Install a minimal R package build tool if needed (roxygen2 for docs is optional when building from source via R CMD INSTALL)
RUN R -e "if(!require('roxygen2', quietly = TRUE)) install.packages('roxygen2', repos='https://cloud.r-project.org')"
WORKDIR /gganimate
COPY . .
# Build the package from source
RUN R CMD INSTALL . --no-multiarch --with-keep.source
# Simple runtime check to verify the package loads
CMD ["R", "-e", "cat('gganimate built. version=', utils::packageVersion('gganimate'), '\n'); invisible(0)"]
Error summary - Failing step (command/step): RUN apt-get update && apt-get install -y --no-install-recommends build-essential libcurl4-openssl-dev libxml2-dev libssl-dev pandoc gifski ffmpeg && rm -rf /var/lib/apt/lists/* - Exact error message and exit code: Exit code: 100 Package gifski is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source E: Package 'gifski' has no installation candidate - Missing packages or files mentioned: - gifski (not available in the apt repositories used) - Version/repo information (potential mismatch): - Base image in use: r-base:4.5.3 - Apt sources show multiple Debian suites being consulted (testing and sid), e.g., InRelease for testing and sid main Packages, which can lead to package availability issues like gifski not being present in those suites at the time of install.
Image r-base:4.5.3 exists on Docker Hub.
FROM r-base:4.5.3
# Install system dependencies needed to build the package and render docs
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
build-essential \
libcurl4-openssl-dev \
libxml2-dev \
libssl-dev \
pandoc \
# gifski and ffmpeg are optional runtime deps for rendering; try to install via alternatives if not available
&& rm -rf /var/lib/apt/lists/*
# Try to install gifski and ffmpeg via alternative sources if available
RUN apt-get update \
&& apt-get install -y --no-install-recommends gifski ffmpeg \
|| true \
&& rm -rf /var/lib/apt/lists/*
# Install a minimal R package build tool if needed (roxygen2 for docs is optional when building from source via R CMD INSTALL)
RUN R -e "if(!require('roxygen2', quietly = TRUE)) install.packages('roxygen2', repos='https://cloud.r-project.org')"
WORKDIR /gganimate
COPY . .
# Build the package from source
RUN R CMD INSTALL . --no-multiarch --with-keep.source
# Simple runtime check to verify the package loads
CMD ["R", "-e", "cat('gganimate built. version=', utils::packageVersion('gganimate'), '\n'); invisible(0)"]
- Exact error message and exit code
- Exit code: 1
- Error: dependencies ‘ggplot2’, ‘progress’, ‘scales’, ‘transformr’, ‘tweenr’ are not available for package ‘gganimate’
- Additional hint shown:
- Perhaps try a variation of:
- install.packages(c('ggplot2', 'progress', 'scales', 'transformr', 'tweenr'))
- * removing ‘/usr/local/lib/R/site-library/gganimate’
- Failing command/step
- Step: [7/7] RUN R - CMD INSTALL . --no-multiarch --with-keep.source
- Dockerfile reference: Dockerfile:27
- Missing packages or files mentioned
- Missing dependencies: ggplot2, progress, scales, transformr, tweenr
- Version mismatch or related info
- Build uses R version 4.5.3 (2026-03-11)
- No explicit version mismatch message for the failing step; the failure is due to missing available packages for installation.FROM r-base:4.5.3
# Install system dependencies needed to build the package and render docs
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
build-essential \
libcurl4-openssl-dev \
libxml2-dev \
libssl-dev \
pandoc \
&& rm -rf /var/lib/apt/lists/*
# Pre-install CRAN dependencies to ensure they are available for gganimate
RUN R -e "install.packages(c('ggplot2','progress','scales','transformr','tweenr'), repos='https://cloud.r-project.org')"
WORKDIR /gganimate
COPY . .
# Build the package from source
RUN R CMD INSTALL . --no-multiarch --with-keep.source
# Simple runtime check to verify the package loads
CMD ["R", "-e", "cat('gganimate built. version=', utils::packageVersion('gganimate'), '\n'); invisible(0)"]
Status: VerifyBuild status: build_failed
Core failures
- Failing step: [6/6] RUN R CMD INSTALL . --no-multiarch --with-keep.source
- Exit code: 1
- ERROR: dependencies ‘stringi’, ‘transformr’ are not available for package ‘gganimate’
- Perhaps try a variation of: install.packages(c('stringi', 'transformr'))
- removing ‘/usr/local/lib/R/site-library/gganimate’
- Additional related failures:
- "ERROR: dependencies ‘s2’, ‘units’ are not available for package ‘sf’"
- Suggestion: "Perhaps try a variation of: install.packages('s2', 'units')"
- After that, "ERROR: dependencies ‘stringi’, ‘transformr’ are not available for package ‘gganimate’" led to final exit.
Missing packages/files / build tools
- sf could not install because: s2 and units were not available
- "ERROR: dependencies ‘s2’, ‘units’ are not available for package ‘sf’"
- Abseil build failing due to missing build tool:
- "tools/build_absl.sh: 24: /Applications/CMake.app/Contents/bin/cmake: not found"
- "cmake not found"
- "CMake build of Abseil failed"
- Guidance: install cmake or libabsl-dev
- Udunits issue causing sf/dependency failure:
- "Configuration failed because libudunits2.so was not found. Try installing: deb: libudunits2-dev; rpm: udunits2-devel; brew: udunits"
- If installed in non-standard location: configure args: --configure-args='--with-udunits2-lib=/usr/local/lib'
Version / environment notes
- Base image / R version:
- Dockerfile uses r-base:4.5.3
- R version shown: "R version 4.5.3 (2026-03-11) -- 'Reassured Reassurer'"
- Packages/versions seen:
- gganimate fails due to missing stringi and transformr
- sf depends on s2 and units; s2 reported as version 1.1.9 during install
- Abseil attempted during s2 build and failed due to missing cmake
- Interpretation: build environment lacks required system libraries (libudunits2-dev, cmake for Abseil), blocking sf and cascading to ggplot2-related dependencies and gganimate
Actionable takeaways
- Ensure system dependencies exist before R package builds:
- Install: libudunits2-dev, cmake (or libabsl-dev)
- Pre-install problematic R packages (s2, units, sf) or provide binaries to avoid source builds in this image
- Re-run after adding dependencies to the Dockerfile prior to R CMD INSTALLFROM r-base:4.5.3
# Install system dependencies needed to build the package and render docs
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
build-essential \
libcurl4-openssl-dev \
libxml2-dev \
libssl-dev \
pandoc \
cmake \
libicu-dev \
libudunits2-dev \
&& rm -rf /var/lib/apt/lists/*
# Pre-install CRAN dependencies to ensure they are available for gganimate
RUN R -e "install.packages(c('roxygen2'), repos='https://cloud.r-project.org')"
RUN R -e "install.packages(c('ggplot2','progress','scales','transformr','tweenr'), repos='https://cloud.r-project.org')"
WORKDIR /gganimate
COPY . .
# Build the package from source
RUN R CMD INSTALL . --no-multiarch --with-keep.source
# Simple runtime check to verify the package loads
CMD ["R", "-e", "cat('gganimate built. version=', utils::packageVersion('gganimate'), '\n'); invisible(0)"]
- Build status: build_failed
- Base image concerns: FROM r-base:4.5.3 may be outdated/unavailable; ensure tag exists on Docker Hub and remains compatible. R CMD INSTALL may not auto-install all dependencies. COPY . . assumes valid R package (DESCRIPTION, NAMESPACE, etc.). Build does not generate docs (roxygen2) during the build.
Failing step
- [7/7] RUN R CMD INSTALL . --no-multiarch --with-keep.source
- Exit code: 1
Exact errors to preserve
- Final error (trigger):
- "ERROR: dependency ‘transformr’ is not available for package ‘gganimate’"
- "Perhaps try a variation of:
install.packages('transformr')"
- Prior cascading missing-dependencies:
- "ERROR: dependency ‘s2’ is not available for package ‘sf’"
- "Perhaps try a variation of:
install.packages('s2')"
- "ERROR: dependency ‘sf’ is not available for package ‘transformr’"
- "Perhaps try a variation of:
install.packages('sf')"
- Earlier build issue that blocked s2:
- "ERROR: configuration failed for package ‘s2’"
- "error: ‘ uintptr_t’ does not name a type [-Wtemplate-body]"
- "Note: ‘uintptr_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding '#include <cstdint>'"
- "Failed to resolve built vendored copy of Abseil using pkg-config"
- "Package absl_base was not found in the pkg-config search path." (plus several absl-related missing entries)
Missing packages/files mentioned
- transformr
- s2
- sf
- Abseil components (absl_base, absl_btree, absl_config, absl_core_headers, absl_dynamic_annotations, absl_endian, absl_flat_hash_map, absl_hash, absl_inlined_vector, absl_log, absl_log_internal…, etc.)
Version/compatibility context
- R version: 4.5.3 (2026-03-11)
- Compiler: GCC 15.2.0
- CMake: 4.2.3
- Notable: Abseil/pkg-config vendoring failed to configure for s2
Root cause and recommended fix
- Root blockers: transformr (gganimate) depends on s2 and sf; upstream Abseil/pkg-config resolution failure prevents s2 configuring.
- Fix path: get s2 and sf to build cleanly (address Abseil pkg-config availability and uintptr_t/include <cstdint> issue), then install transformr, after which sf/transformr/gganimate can proceed.FROM rocker/r-base:4.5.3
# Install system dependencies needed to build the package and render docs
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
build-essential \
curl \
libcurl4-openssl-dev \
libxml2-dev \
libssl-dev \
pandoc \
cmake \
libudunits2-dev \
libgeos-dev \
libproj-dev \
libgdal-dev \
git \
&& rm -rf /var/lib/apt/lists/*
# Pre-install CRAN dependencies to improve build reliability
RUN R -e "install.packages(c('roxygen2','ggplot2','progress','scales','transformr','tweenr','stringi'), repos='https://cloud.r-project.org')"
WORKDIR /gganimate
COPY . .
# Build the package from source
RUN R CMD INSTALL . --no-multiarch --with-keep.source
# Simple runtime check to verify the package loads
CMD ["R", "-e", "cat('gganimate built. version=', utils::packageVersion('gganimate'), '\n'); invisible(0)"]
Actionable Docker build error summary
- Exact error message and exit code
- ERROR: dependency ‘transformr’ is not available for package ‘gganimate’
- The final RUN failed with exit code 1: “process '/bin/sh -c R CMD INSTALL . --no-multiarch --with-keep.source' did not complete successfully: exit code: 1”
- Failing command/step
- Failing step: [6/6] RUN R CMD INSTALL . --no-multiarch --with-keep.source
- Missing packages or files mentioned
- transformr: not available for gganimate (root cause of final failure)
- Prior dependency install attempts failed:
- s2: installation had non-zero exit status
- sf: installation had non-zero exit status
- Abseil/s2 build failure details indicate the s2 dependency cannot be built, causing s2-based packages_sf and transformr flows to fail
- Version mismatch / other notable info
- R version: 4.5.3 (from log: R version 4.5.3)
- Compiler: GCC/-G++ 15.2.0 (log shows “The CXX compiler identification is GNU 15.2.0”)
- Abseil build error during s2:
- Error: uintptr_t does not name a type; missing #include <cstdint> suggested
- “Failed to resolve built vendored copy of Abseil using pkg-config” and missing absl_* packages
- These ABI/compatibility issues with GCC 15.2.0 appear to block s2, which in turn blocks sf, transformr, and ultimately ggplot2-related dependencies.# Use a robust R base image with build tools
FROM rocker/r-ver:4.5.3
# Install system dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential \
libcurl4-openssl-dev \
libssl-dev \
libxml2-dev \
pandoc \
ca-certificates \
git \
&& rm -rf /var/lib/apt/lists/*
# Create app directory
WORKDIR /gganimate
# Copy package source
COPY . .
# Install R package build dependencies
RUN R -e "install.packages(c('devtools','roxygen2','gifski','stringi','transformr'), repos='https://cran.r-project.org')"
# Build and install the package from source
RUN R CMD INSTALL . --no-multiarch --with-keep.source
# Default command: drop into a shell for debugging or further actions
CMD ["/bin/bash"]
# Ignore version control .git "package"/ inst/.git .Rhistory .RData .Rproj.user .Rproj.user/ .Rproj *.Rproj .DS_Store .Rbuildignore
Build timed out after 600s
Image rocker/r-ver:4.5.3 exists on Docker Hub.
# Use a robust R base image with build tools
FROM rocker/r-ver:4.5.3
# Install system dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential \
libcurl4-openssl-dev \
libssl-dev \
libxml2-dev \
pandoc \
ca-certificates \
git \
&& rm -rf /var/lib/apt/lists/*
# Create app directory
WORKDIR /gganimate
# Copy package source
COPY . .
# Install R package build dependencies
RUN R -e "install.packages(c('devtools','roxygen2','gifski','stringi','transformr'), repos='https://cran.r-project.org')"
# Build and install the package from source
RUN R CMD INSTALL . --no-multiarch --with-keep.source
# Default command: drop into a shell for debugging or further actions
CMD ["/bin/bash"]
- Status: VerifyBuild status: build_failed
- Key concerns (actionable):
- Missing system libraries to compile stringi from source (e.g., libicu-dev). Recommend apt-get install libicu-dev (and potentially other ICU-related packages).
- gifski and other R package dependencies may need additional libs (e.g., libgif-dev, libjpeg-dev). Ensure these are available or rely on prebuilt binaries.
- No explicit runtime tests in the Dockerfile. Add a lightweight check (e.g., R CMD CHECK or smoke test).
- Build pipeline (partial audit):
- Base image: docker.io/rocker/r-ver:4.5.3@sha256:355c7f03d2aa42ce2b15f85505d631426e56cf52236bf1bfca1f5e1258b0e675
- apt-get install (cached): build-essential, libcurl4-openssl-dev, libssl-dev, libxml2-dev, pandoc, ca-certificates, git
- Working directory: /gganimate
- Copy project: . -> .
- R package install attempt: R -e "install.packages(c('devtools','roxygen2','gifski','stringi','transformr'), repos='https://cran.r-project.org')"
- Observed R environment from the run:
- R version 4.5.3 (2026-03-11) -- "Reassured Reassurer"
- Platform: x86_64-pc-linux-gnu
- License boilerplate present (not critical for build)
- R package names attempted: devtools, roxygen2, gifski, stringi, transformr
- The R output shown includes initial banner text; the log ends with a truncated line after "> i" (no further details in the excerpt)
- Files/paths mentioned:
- Working dir: /gganimate
- Docker image reference and sha256: ...@sha256:355c7f03d2aa42ce2b15f85505d631426e56cf52236bf1bfca1f5e1258b0e675
- Recommendations:
- Install libicu-dev (and related ICU libs) and libgif-dev/libjpeg-dev as needed.
- Consider adding a lightweight runtime test (e.g., loading the built package and printing version) to Dockerfile to validate success.Exact error message and exit code
- ERROR: dependencies ‘ggplot2’, ‘progress’, ‘scales’, ‘transformr’ are not available for package ‘gganimate’
- process "/bin/sh -c R CMD INSTALL . --no-multiarch --with-keep.source" did not complete successfully: exit code: 1
- The failing command was the final installation step: RUN R CMD INSTALL . --no-multiarch --with-keep.source
Failing command/step
- [6/6] RUN R CMD INSTALL . --no-multiarch --with-keep.source
Missing packages or files mentioned
- ggplot2, progress, scales, transformr (these dependencies are not available for gganimate)
- The log suggests trying: install.packages(c('ggplot2', 'progress', 'scales', 'transformr'))
Version/context information
- Base image/version: rocker/r-ver:4.5.3 (R 4.5.3)
- The error does not explicitly state a version mismatch, but the missing dependencies may be unavailable for this R version, prompting the suggested install.packages workaround.# Use a robust R base image with build tools
FROM rocker/r-ver:4.5.3
# Install system dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential \
libcurl4-openssl-dev \
libssl-dev \
libxml2-dev \
pandoc \
ca-certificates \
git \
libicu-dev \
libgif-dev \
libjpeg-dev \
libpng-dev \
&& rm -rf /var/lib/apt/lists/*
# Create app directory
WORKDIR /gganimate
# Copy package source
COPY . .
# Install R package build dependencies
RUN R -e "install.packages(c('devtools','roxygen2','gifski','stringi','transformr','ggplot2','progress','scales','rlang','tweenr'), repos='https://cloud.r-project.org')"
# Build and install the package from source
RUN R CMD INSTALL . --no-multiarch --with-keep.source
# Default command: run a quick check and print version of gganimate when started
CMD ["R","-e","library(gganimate); cat('gganimate loaded, version=', packageVersion('gganimate'), '\n')"]
Build timed out after 600s
# Use a robust R base image with build tools
FROM rocker/r-ver:4.5.3
# Install system dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential \
libcurl4-openssl-dev \
libssl-dev \
libxml2-dev \
pandoc \
ca-certificates \
git \
libicu-dev \
libgif-dev \
libjpeg-dev \
libpng-dev \
libtiff5-dev \
libxslt1-dev \
zlib1g-dev \
&& rm -rf /var/lib/apt/lists/*
# Create app directory
WORKDIR /gganimate
# Copy package source
COPY . .
# Install R package build dependencies
RUN R -e "install.packages(c('devtools','roxygen2','gifski','stringi','transformr','ggplot2','progress','scales','rlang','tweenr'), repos='https://cloud.r-project.org')"
# Build and install the package from source
RUN R CMD INSTALL . --no-multiarch --with-keep.source
# Default command: run a quick check and print version of gganimate when started
CMD ["R","-e","library(gganimate); cat('gganimate loaded, version=', packageVersion('gganimate'), '\n')"]
Build timed out after 600s
# Ignore version control .git "package"/ inst/.git .Rhistory .RData .Rproj.user .Rproj.user/ .Rproj *.Rproj .DS_Store .Rbuildignore # Ignore tests and ancillary docs to speed up build tests/ vignettes/ pkgdown/ man/ vignettes_extra/
Build timed out after 600s
Image rocker/devtools:4.5.3 NOT found on Docker Hub.
# Use a base image pinned to a recent R version
FROM r-base:4.5.3
# Install system dependencies needed for building and vignettes
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential \
libcurl4-openssl-dev \
libssl-dev \
libxml2-dev \
pandoc \
ca-certificates \
git \
libicu-dev \
libgif-dev \
libjpeg-dev \
libpng-dev \
zlib1g-dev \
&& rm -rf /var/lib/apt/lists/*
# Create app directory and set workdir
WORKDIR /gganimate
# Copy package source
COPY . .
# Install R package build dependencies (prefer binaries when available)
RUN R -e "install.packages(c('ggplot2','progress','scales','transformr','stringi','tweenr','rlang','gifski'), repos='https://cloud.r-project.org', dependencies=TRUE)"
# Build and install the package from source
RUN R CMD INSTALL . --no-multiarch --with-keep.source
# Default command: show package version to verify setup
CMD ["R","-e","library(gganimate); cat('gganimate version: ', packageVersion('gganimate'), '\n')"]
Build timed out after 600s
# Use a base image pinned to a recent R version
FROM rocker/r-ver:4.5.3
# Install system dependencies needed for building and vignettes
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential \
libcurl4-openssl-dev \
libssl-dev \
libxml2-dev \
pandoc \
ca-certificates \
git \
libicu-dev \
libgif-dev \
libjpeg-dev \
libpng-dev \
zlib1g-dev \
libtiff5-dev \
libxslt1-dev \
&& rm -rf /var/lib/apt/lists/*
# Create app directory and set workdir
WORKDIR /gganimate
# Copy package source
COPY . .
# Install R package build dependencies (prefer binaries when available)
RUN R -e "install.packages(c('ggplot2','progress','scales','transformr','stringi','tweenr','rlang','gifski','roxygen2'), repos='https://cloud.r-project.org', dependencies=TRUE)"
# Build and install the package from source
RUN R CMD INSTALL . --no-multiarch --with-keep.source
# Default command: show package version to verify setup
CMD ["R","-e","library(gganimate); cat('gganimate version: ', packageVersion('gganimate'), '\n')"]
Build timed out after 600s
# Stage 1: builder
FROM rocker/r-ver:4.5.3 AS builder
# Install system dependencies needed for building and vignettes
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential \
libcurl4-openssl-dev \
libssl-dev \
libxml2-dev \
pandoc \
ca-certificates \
git \
libicu-dev \
libgif-dev \
libjpeg-dev \
libpng-dev \
zlib1g-dev \
libtiff5-dev \
libxslt1-dev \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /gganimate
# Copy package source
COPY . .
# Install R build dependencies (binaries when possible)
RUN R -e "install.packages(c('ggplot2','progress','scales','transformr','stringi','tweenr','rlang','gifski','roxygen2','devtools'), repos='https://cloud.r-project.org', dependencies=TRUE)"
# Build the package from source (produces a tarball)
RUN R CMD INSTALL . --no-multiarch --with-keep.source --build
# List produced tarballs for debugging
RUN ls -1 *.tar.gz || true
# Stage 2: runtime image
FROM rocker/r-ver:4.5.3
# Install minimal system dependencies for runtime
RUN apt-get update && apt-get install -y --no-install-recommends \
libcurl4-openssl-dev \
libxml2-dev \
pandoc \
ca-certificates \
libicu-dev \
libgif-dev \
libjpeg-dev \
libpng-dev \
zlib1g-dev \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /gganimate
# Copy the built package from the builder stage
COPY --from=builder /gganimate/*.tar.gz /tmp/
# Install the pre-built package
RUN R CMD INSTALL /tmp/*.tar.gz --no-multiarch --with-keep.source
# Default command: verify loading the package
CMD ["R","-e","library(gganimate); cat('gganimate version:', packageVersion('gganimate'), '\n')"]
Build timed out after 600s
# Build-stage: compile and install gganimate from source
FROM r-base:4.5.3 as builder
LABEL maintainer="BuildAgent"
# Install system dependencies required for building R packages and Pandoc for vignettes
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
libicu-dev \
libxml2-dev \
libcurl4-openssl-dev \
libssl-dev \
pandoc \
pandoc-citeproc \
build-essential \
&& rm -rf /var/lib/apt/lists/*
# Prepare build context
WORKDIR /gganimate
COPY . /gganimate
# Install minimal R build tooling
RUN R -e "install.packages(c('roxygen2'), repos='https://cloud.r-project.org')"
# Build the package tarball from source
RUN R CMD build . --no-manual
# Normalize tarball name for downstream copy
RUN set -e; TARBALL=$(ls gganimate_*.tar.gz); echo "Tarball: $TARBALL"; mv "$TARBALL" gganimate.tar.gz
# Install the package into the builder image to ensure build success
RUN R CMD INSTALL --no-multiarch --with-keep.source gganimate.tar.gz
# Runtime stage: minimal, only what's needed to run the package
FROM r-base:4.5.3
LABEL maintainer="BuildAgent"
# Runtime system libraries (low footprint; gifski is optional but helpful for rendering)
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
libicu-dev \
libxml2-dev \
libcurl4-openssl-dev \
libssl-dev \
gifski \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /gganimate
# Copy built package tarball from builder stage
COPY --from=builder /gganimate/gganimate.tar.gz /gganimate.tar.gz
# Install the package from the tarball in the runtime image
RUN R CMD INSTALL --no-multiarch --with-keep.source /gganimate.tar.gz
# Default command: show package version and session info to verify install
CMD ["R", "-e", "library(gganimate); sessionInfo(); cat(\"gganimate version:\", packageVersion('gganimate'), '\n')"]
# Ignore VCS and large files .git .Rproj.user .Rbuild* .RData .Rhistory .Renviron .Ruserdata vignettes/ data/ data-raw/ doc/ inst/doc inst/vignettes pkgdown/ _tests tests/ .Rbuildignore .Renviron.site *.tar.gz
- Build status: build_failed
- Runtime/build concerns
- Runtime stage installs dev headers (libicu-dev, libxml2-dev, libcurl4-openssl-dev, libssl-dev) and gifski; this can bloat the image. Consider installing runtime libs (libicu, libxml2, libcurl4-openssl, libssl) or rely on the base image runtime deps.
- Pandoc is installed in the build stage but not runtime; fine for builds but won't be available at runtime if tests render vignettes then.
- Failing steps and errors
- Step: [stage-1 2/5] RUN apt-get update && apt-get install -y --no-install-recommends libicu-dev libxml2-dev libcurl4-openssl-dev libssl-dev gifski && rm -rf /var/lib/apt/lists/*
- Exit code: 100
- Error: E: Package 'gifski' has no installation candidate
- Step: [builder 2/8] RUN apt-get update && apt-get install -y --no-install-recommends libicu-dev libxml2-dev libcurl4-openssl-dev libssl-dev pandoc pandoc-citeproc build-essential && rm -rf /var/lib/apt/lists/*
- Exit code: 100
- Error: E: Package 'pandoc-citeproc' has no installation candidate
- Failing command / step
- The failing command is the apt-get install line in the multi-stage build:
RUN apt-get update && apt-get install -y --no-install-recommends libicu-dev libxml2-dev libcurl4-openssl-dev libssl-dev gifski && rm -rf /var/lib/apt/lists/*
- And in the next stage:
RUN apt-get update && apt-get install -y --no-install-recommends libicu-dev libxml2-dev libcurl4-openssl-dev libssl-dev pandoc pandoc-citeproc build-essential && rm -rf /var/lib/apt/lists/*
- Missing packages/files
- gifski: no installation candidate
- pandoc-citeproc: no installation candidate
- Version/mismatch information
- Base image: docker.io/library/r-base:4.5.3 with explicit digest (sha256:a71740f8a406c48b889cfc55e8e7990e9da42cfd606c960718b73e690ebfabe7)
- Warning (non-fatal): FromAsCasing: 'as' and 'FROM' keywords' casing do not match (line 2)
- No explicit version mismatch between components shown beyond the missing packages.# Build-stage: compile and install gganimate from source
FROM r-base:4.5.3 as builder
LABEL maintainer="BuildAgent"
# Install system dependencies required for building R packages and Pandoc for vignettes
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
libicu-dev \
libxml2-dev \
libcurl4-openssl-dev \
libssl-dev \
pandoc \
build-essential \
&& rm -rf /var/lib/apt/lists/*
# Prepare build context
WORKDIR /gganimate
COPY . /gganimate
# Install minimal R build tooling
RUN R -e "install.packages('roxygen2', repos='https://cloud.r-project.org')"
# Build the package tarball from source
RUN R CMD build . --no-manual
# Normalize tarball name for downstream copy
RUN set -e; TARBALL=$(ls gganimate_*.tar.gz); echo "Tarball: $TARBALL"; mv "$TARBALL" gganimate.tar.gz
# Install the package into the builder image to ensure build success
RUN R CMD INSTALL --no-multiarch --with-keep.source gganimate.tar.gz
# Runtime stage: minimal, only what's needed to run the package
FROM r-base:4.5.3
LABEL maintainer="BuildAgent"
# Runtime: keep minimal to reduce image size
WORKDIR /gganimate
# Copy built package tarball from builder stage
COPY --from=builder /gganimate/gganimate.tar.gz /gganimate.tar.gz
# Install the package from the tarball in the runtime image
RUN R CMD INSTALL --no-multiarch --with-keep.source /gganimate.tar.gz
# Default command: verify installation by loading the package and printing session info
CMD ["R", "-e", "library(gganimate); sessionInfo(); cat('gganimate version:', as.character(packageVersion('gganimate')), '\n')"]
- Exact error message and exit code
- Error: ERROR: dependencies ‘ggplot2’, ‘progress’, ‘scales’, ‘transformr’, ‘tweenr’ are not available for package ‘gganimate’
- Variation hint: Perhaps try a variation of:
- Suggested install: install.packages(c('ggplot2', 'progress', 'scales', 'transformr', 'tweenr'))
- Exit code: 1
- Failing command/step
- RUN command: R CMD INSTALL --no-multiarch --with-keep.source gganimate.tar.gz
- Step: [builder 8/8]
- Missing packages or files mentioned
- Missing dependencies preventing installation: ggplot2, progress, scales, transformr, tweenr
- Version mismatch info
- R version shown during build: R version 4.5.3 (2026-03-11) -- "Reassured Reassurer"
- Tarball being installed: gganimate_1.0.11.9000.tar.gz (gganimate.tar.gz named artifact in log)# Build-stage: compile and install gganimate from source
FROM r-base:4.5.3 as builder
LABEL maintainer="BuildAgent"
# Install system dependencies required for building R packages and Pandoc for vignettes
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
libicu-dev \
libxml2-dev \
libcurl4-openssl-dev \
libssl-dev \
pandoc \
build-essential \
&& rm -rf /var/lib/apt/lists/*
# Prepare build context
WORKDIR /gganimate
COPY . /gganimate
# Install essential R build tooling and CRAN dependencies
RUN R -e "install.packages(c('roxygen2','ggplot2','progress','scales','transformr','tweenr','rlang','stringi','glue','magrittr'), repos='https://cloud.r-project.org')"
# Build the package tarball from source
RUN R CMD build . --no-manual
# Normalize tarball name for downstream copy
RUN set -e; TARBALL=$(ls gganimate_*.tar.gz); echo "Tarball: $TARBALL"; mv "$TARBALL" gganimate.tar.gz
# Install the package into the builder image to ensure build success
RUN R CMD INSTALL --no-multiarch --with-keep.source gganimate.tar.gz
# Runtime stage: minimal, only what's needed to run the package
FROM r-base:4.5.3
LABEL maintainer="BuildAgent"
# Runtime: keep minimal to reduce image size
WORKDIR /gganimate
# Copy built package tarball from builder stage
COPY --from=builder /gganimate/gganimate.tar.gz /gganimate.tar.gz
# Install the package from the tarball in the runtime image
RUN R CMD INSTALL --no-multiarch --with-keep.source /gganimate.tar.gz
# Default command: verify installation by loading the package and printing session info
CMD ["R", "-e", "library(gganimate); sessionInfo(); cat('gganimate version:', as.character(packageVersion('gganimate')), '\n')"]
- Exact error message and exit code - ERROR: dependency ‘transformr’ is not available for package ‘gganimate’ - Exit code: 1 - Failing command/step - RUN R CMD INSTALL --no-multiarch --with-keep.source gganimate.tar.gz - Missing packages/files mentioned - transformr (required by gganimate) - sf (dependency path failed due to missing dependencies) - s2 (dep. of sf; reported as not available) - units (dep. of sf; reported as not available) - libudunits2 (missing; caused Units configuration failure) - cmake (needed for Abseil build in s2; “cmake not found”) - Abseil build step failed due to missing cmake - UDN: The log also shows “The downloaded source packages are in …” and several prior package install attempts failing due to the chain above - Version/compatibility notes - Environment uses R 4.5.3 (R version 4.5.3, 2026-03-11) - Build context indicates attempts to install multiple CRAN packages (sf, s2, units, transformr, etc.) in a Debian-based image - Abseil/s2 step references missing CMake (cmake not found) and a macOS-like CMake path in logs, suggesting a missing system toolchain - No explicit numeric version mismatches shown for the failing packages, but the failure chain is due to missing system libraries and build tools (udunits2, ICU etc.) that sf/transformr depend on - Quick note - The failure occurs during the final installation of gganimate, after earlier dependency install attempts failed (transformr cannot be built because its dependencies (sf -> s2/units) cannot be installed due to missing system libs and build tools).
mcp/next-devtools-mcp (0 stars): next-devtools-mcp is a Model Context Protocol (MCP) server that provides Next.js pandoc/core (44 stars): Official pandoc image with image conversion tools and pandoc-crossref. pandoc/latex (92 stars): Official pandoc image with pandoc, pandoc-crossref, and a minimal LaTeX installa grafana/devtools-github-archive-parser (0 stars): pandoc/minimal (8 stars): Minimal image for pandoc, the universal document converter. pandoc/extra (21 stars): Large pandoc image with many LaTeX extras, including popular fonts and the “Eisv kong/kong-build-tools (3 stars): Docker images related to developing, packaging and releasing Kong grafana/devtools-github-event-aggregator (1 stars): rancher/rke-tools (14 stars): okteto/devtools (0 stars):
# Build-stage: compile and install gganimate from source
FROM r-base:4.5.3 as builder
LABEL maintainer="BuildAgent"
# Install system dependencies required for building R packages and Pandoc for vignettes
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
libicu-dev \
libxml2-dev \
libcurl4-openssl-dev \
libssl-dev \
libudunits2-dev \
libgeos-dev \
libproj-dev \
cmake \
gfortran \
pandoc \
build-essential \
&& rm -rf /var/lib/apt/lists/*
# Prepare build context
WORKDIR /gganimate
COPY . /gganimate
# Install essential R build tooling and common CRAN dependencies
RUN R -e "install.packages(c('roxygen2','ggplot2','progress','scales','transformr','tweenr','rlang','stringi','glue','magrittr'), repos='https://cloud.r-project.org')"
# Build the package tarball from source
RUN R CMD build . --no-manual
# Normalize tarball name for downstream copy
RUN set -e; TARBALL=$(ls gganimate_*.tar.gz); echo "Tarball: $TARBALL"; mv "$TARBALL" gganimate.tar.gz
# Install the package into the builder image to ensure build success
RUN R CMD INSTALL --no-multiarch --with-keep.source gganimate.tar.gz
# Runtime stage: minimal, only what's needed to run the package
FROM r-base:4.5.3
LABEL maintainer="BuildAgent"
# Runtime: keep minimal to reduce image size
WORKDIR /gganimate
# Copy built package tarball from builder stage
COPY --from=builder /gganimate/gganimate.tar.gz /gganimate.tar.gz
# Install the package from the tarball in the runtime image
RUN R CMD INSTALL --no-multiarch --with-keep.source /gganimate.tar.gz
# Default command: verify installation by loading the package and printing session info
CMD ["R", "-e", "library(gganimate); sessionInfo(); cat('gganimate version:', as.character(packageVersion('gganimate')), '\n')"]
- Exact error message and exit code
- "ERROR: dependency ‘transformr’ is not available for package ‘gganimate’"
- Exit code: 1
- Failing command/step
- Failing step: builder 8/8
- Command: RUN R CMD INSTALL --no-multiarch --with-keep.source gganimate.tar.gz
- Missing packages or files mentioned (cascade)
- transformr is not available for gganimate
- sf is not available for transformr
- s2 is not available for sf
- Abseil vendored build failing (needed by s2):
- "Package absl_base was not found in the pkg-config search path."
- "Package 'absl_base', required by 'absl_s2', not found" (and similar absl_… packages listed)
- "Failed to resolve built vendored copy of Abseil using pkg-config"
- Additional context: the sf dependency chain is blocked by s2, which is blocked by Abseil being unavailable
- Version mismatch info (notable versions in logs)
- R version: 4.5.3 (2026-03-11) — "Reassured Reassurer"
- GCC: gcc (Debian 15.2.0-15) 15.2.0
- CMake: 4.2.3
- s2 package: version 1.1.9
- transformr package: indicated in the log as transformr (likely 0.1.5 series from dependency traces)
- Other environment indicators show OpenSSL/pkg-config and Abseil-related vendored build attempts (pkg-config path shown, e.g., PKG_CONFIG_PATH usage)
Notes
- The final install fails due to the immediate dependency issue transformr, which itself requires sf, which depends on s2; the root blocker is that s2 cannot be built because Abseil libraries (absl_*) are not found by pkg-config.# Build-stage: compile and install gganimate from source
FROM r-base:4.5.3 as builder
LABEL maintainer="BuildAgent"
# Install system dependencies required for building R packages (heavy but necessary for sf/transformr chain)
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
libicu-dev \
libxml2-dev \
libcurl4-openssl-dev \
libssl-dev \
libudunits2-dev \
libgeos-dev \
libproj-dev \
libgdal-dev \
cmake \
gfortran \
build-essential \
autoconf \
automake \
libtool \
pkg-config \
&& rm -rf /var/lib/apt/lists/*
# Prepare build context
WORKDIR /gganimate
COPY . /gganimate
# Install essential R build tooling
RUN R -e "install.packages('roxygen2', repos='https://cloud.r-project.org')"
# Build the package tarball from source
RUN R CMD build . --no-manual
# Normalize tarball name for downstream copy
RUN set -e; TARBALL=$(ls gganimate_*.tar.gz); echo "Tarball: $TARBALL"; mv "$TARBALL" gganimate.tar.gz
# Install the package into the builder image to ensure build success
RUN R CMD INSTALL --no-multiarch --with-keep.source gganimate.tar.gz
# Runtime stage: minimal, only what's needed to run the package
FROM r-base:4.5.3
LABEL maintainer="BuildAgent"
# Runtime: keep minimal to reduce image size
WORKDIR /gganimate
# Copy built package tarball from builder stage
COPY --from=builder /gganimate/gganimate.tar.gz /gganimate.tar.gz
# Install the package from the tarball in the runtime image
RUN R CMD INSTALL --no-multiarch --with-keep.source /gganimate.tar.gz
# Default command: verify installation by loading the package and printing session info
CMD ["R", "-e", "library(gganimate); sessionInfo(); cat('gganimate version:', as.character(packageVersion('gganimate')), '\n')"]
Failing step
- [builder 8/8] RUN R CMD INSTALL --no-multiarch --with-keep.source gganimate.tar.gz
Exact error message and exit code
- ERROR: dependencies ‘ggplot2’, ‘progress’, ‘scales’, ‘transformr’, ‘tweenr’ are not available for package ‘gganimate’
- Perhaps try a variation of:
install.packages(c('ggplot2', 'progress', 'scales', 'transformr', 'tweenr'))
- * removing ‘/usr/local/lib/R/site-library/gganimate’
- Exit code: 1
Missing packages mentioned
- ggplot2
- progress
- scales
- transformr
- tweenr
Version information and mismatch notes
- R version 4.5.3 (2026-03-11) used in the build
- No explicit version mismatch shown in the error; the failure is due to missing dependencies for gganimate given this R environment.# Build-stage: compile and install gganimate from source
FROM r-base:4.5.3 as builder
LABEL maintainer="BuildAgent"
# Install system dependencies required for building R packages
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
libicu-dev \
libxml2-dev \
libcurl4-openssl-dev \
libssl-dev \
pandoc \
build-essential \
&& rm -rf /var/lib/apt/lists/*
# Prepare build context
WORKDIR /gganimate
COPY . /gganimate
# Install essential R build tooling and CRAN dependencies
RUN R -e "install.packages(c('roxygen2','ggplot2','progress','scales','transformr','tweenr','rlang','stringi','glue'), repos='https://cloud.r-project.org')"
# Build the package tarball from source
RUN R CMD build . --no-manual
# Normalize tarball name for downstream copy
RUN set -e; TARBALL=$(ls gganimate_*.tar.gz); echo "Tarball: $TARBALL"; mv "$TARBALL" gganimate.tar.gz
# Install the package into the builder image to ensure build success
RUN R CMD INSTALL --no-multiarch --with-keep.source gganimate.tar.gz
# Runtime stage: minimal, only what's needed to run the package
FROM r-base:4.5.3
LABEL maintainer="BuildAgent"
# Runtime: keep minimal to reduce image size
WORKDIR /gganimate
# Copy built package tarball from builder stage
COPY --from=builder /gganimate/gganimate.tar.gz /gganimate.tar.gz
# Install the package from the tarball in the runtime image
RUN R CMD INSTALL --no-multiarch --with-keep.source /gganimate.tar.gz
# Default command: verify installation by loading the package and printing session info
CMD ["R", "-e", "library(gganimate); sessionInfo(); cat('gganimate version:', as.character(packageVersion('gganimate')), '\n')"]
Summary (under 1500 chars):
- Build status: VerifyBuild status: build_failed
- Tests: Smoke tests only verify package can be loaded; no runtime functionality tested. No explicit runtime dependency checks beyond package installation; some environments may require additional system libraries for full gganimate functionality.
- Build error (actionable):
- Exit code: 1
- ERROR: dependency ‘transformr’ is not available for package ‘gganimate’
- ERROR: process "/bin/sh -c R CMD INSTALL --no-multiarch --with-keep.source gganimate.tar.gz" did not complete successfully: exit code: 1
- Additional context: installation of package ‘s2’ had non-zero exit status; installation of package ‘units’ had non-zero exit status; installation of package ‘sf’ had non-zero exit status; installation of package ‘transformr’ had non-zero exit status (cascading failures)
- Failing command/step:
- [builder 8/8] RUN R CMD INSTALL --no-multiarch --with-keep.source gganimate.tar.gz
- Missing packages/files:
- transformr (missing; required by gganimate)
- s2 (reported as failed configuration)
- TOOL: cmake not found during Abseil build used by s2
- exact lines:
- tools/build_absl.sh: 24: /Applications/CMake.app/Contents/bin/cmake: not found
- cmake not found
- Abseil can be installed with:
- apt-get install libabsl-dev
- dnf install abseil-cpp-devel
- brew install absl
- sf (dep on s2 and units; not available)
- exact line: ERROR: dependencies ‘s2’, ‘units’ are not available for package ‘sf’
- units
- exact configure failure:
- configure: error: in '/tmp/Rtmp9eUmro/R.INSTALL2a8136bb8d79/units':
- configure: error:
- --------------------------------------------------------------------------------
- Configuration failed because libudunits2.so was not found. Try installing:
- deb: libudunits2-dev (Debian, Ubuntu, ...)
- rpm: udunits2-devel (Fedora, EPEL, ...)
- brew: udunits (OSX)
- If udunits2 is already installed in a non-standard location, use:
- --configure-args='--with-udunits2-lib=/usr/local/lib'
- --configure-args='--with-udunits2-include=/usr/include/udunits2'
- You can alternatively set UDUNITS2_INCLUDE and UDUNITS2_LIBS manually.
- --------------------------------------------------------------------------------
- Version/mismatch:
- Base image: FROM gcr.io/.../r-base:4.5.3
- R version 4.5.3 (2026-03-11) -- "Reassured Reassurer"
- gganimate package version: gganimate_1.0.11.9000.tar.gz
- Other related packages shown: s2 1.1.9, sf attempts (blocked by transformr/gganimate dependencies)
- Cascade: s2 Abseil via cmake failure leads to sf and ultimately transformr/gganimate dependency issues
- Environment note:
- Base image uses R 4.5.3; build context references gcr.io/.../r-base:4.5.3
- Logs indicate standard CRAN dependency chain but blocked by missing transformr and prior cmake/udunits2 issues