FROM ruby:3.4.9-alpine3.23
LABEL maintainer="BuildAgent" \
description="Image for running the backup Rubygem"
ENV APP_HOME /usr/src/backup
WORKDIR $APP_HOME
# Install dependencies for building native gems and runtime
RUN apk add --no-cache \
--update \
build-base \
curl \
ca-certificates \
git \
libxml2 \
libxslt \
libyaml \
openssl \
tzdata \
libxml2-dev \
libxslt-dev \
libyaml-dev && \
update-ca-certificates
# Copy source code into the image
COPY . .
# Install Ruby gem dependencies (excluding CI-only groups)
RUN bundle install --without no_ci
# Default to a shell to allow interactive use or to run tests via external commands
CMD ["sh"]
- Exact error message and exit code - ERROR: unable to select packages: - libyaml (no such package): - required by: world[libyaml] - libyaml-dev (no such package): - required by: world[libyaml-dev] - did not complete successfully: exit code: 2 - Failing command/step - [3/5] RUN apk add --no-cache --update build-base curl ca-certificates git libxml2 libxslt libyaml openssl tzdata libxml2-dev libxslt-dev libyaml-dev && update-ca-certificates - Missing packages or files mentioned - libyaml (no such package) - libyaml-dev (no such package) - Version mismatch / environment info - Base image: ruby:3.4.9-alpine3.23 (SHA: 45bdd95e337296472eafa907dc53cfbcf1e3878a11795062f47392d4c251add9) - The Alpine package names libyaml and libyaml-dev are not available in this environment, indicating a possible mismatch between the Alpine base (3.23) and the requested libyaml packages.
FROM ruby:3.4.9-alpine3.23
LABEL maintainer="BuildAgent" \
description="Image for running the backup Rubygem"
ENV APP_HOME /usr/src/backup
WORKDIR $APP_HOME
# Install dependencies for building native gems and runtime
RUN apk add --no-cache \
build-base \
curl \
ca-certificates \
git \
libxml2 \
libxslt \
openssl \
tzdata \
libxml2-dev \
libxslt-dev
# Update CA certificates
RUN update-ca-certificates
# Copy source code into the image
COPY . .
# Install Ruby gem dependencies (excluding CI-only groups)
RUN bundle install --without no_ci
# Default to a shell to allow interactive use or to run tests via external commands
CMD ["sh"]
Summary (under 1500 chars): - Exact error message and exit code - "Gem::Ext::BuildError: ERROR: Failed to build gem native extension." - "extconf.rb:40:in '<main>': The "libcurl" package isn't available. (RuntimeError)" - "An error occurred while installing ovirt-engine-sdk (4.6.1), and Bundler cannot continue." - "ERROR: process \"/bin/sh -c bundle install --without no_ci\" did not complete successfully: exit code: 5" - Failing command/step - [6/6] RUN bundle install --without no_ci - Missing packages or files mentioned - libcurl package isn't available - curl-config: not found - pkg-config for libcurl: not found - Version mismatch info - Base image: ruby:3.4.9-alpine3.23 - Gem: ovirt-engine-sdk (4.6.1) - The failure is due to missing libcurl development headers/tools, not a clear version mismatch; the extconf shows libcurl is required but not available in the build environment.
FROM ruby:2.4.10
LABEL maintainer="BuildAgent" \
description="Image for running the backup Rubygem"
ENV APP_HOME /usr/src/backup
WORKDIR $APP_HOME
# 1) Install dependencies for building native gems and runtime
RUN apt-get update && \
apt-get install -y --no-install-recommends \
bsdtar ca-certificates curl g++ git \
libxml2 libxslt1.1 libyaml-0-2 openssl \
libxml2-dev libxslt1-dev libyaml-dev libcurl4-openssl-dev && \
rm -rf /var/lib/apt/lists/* && \
update-ca-certificates
# 2) Copy source code into the image
COPY . .
# 3) Install Ruby gem dependencies (excluding CI-only groups)
RUN bundle install --without no_ci
# 4) Default command
CMD ["bash"]
- Exact error message and exit code: - ERROR: failed to build: failed to solve: process "/bin/sh -c apt-get update && apt-get install -y --no-install-recommends bsdtar ca-certificates curl g++ git libxml2 libxslt1.1 libyaml-0-2 openssl libxml2-dev libxslt1-dev libyaml-dev libcurl4-openssl-dev && rm -rf /var/lib/apt/lists/* && update-ca-certificates" did not complete successfully: exit code: 100 - Failing command/step: - Step [3/5] RUN apt-get update && apt-get install -y --no-install-recommends bsdtar ca-certificates curl g++ git libxml2 libxslt1.1 libyaml-0-2 openssl libxml2-dev libxslt1-dev libyaml-dev libcurl4-openssl-dev && rm -rf /var/lib/apt/lists/* && update-ca-certificates - Missing packages or files mentioned: - E: The repository 'http://security.debian.org/debian-security buster/updates Release' does not have a Release file. - E: The repository 'http://deb.debian.org/debian buster Release' does not have a Release file. - E: The repository 'http://deb.debian.org/debian buster-updates Release' does not have a Release file. - Version mismatch information: - The failure is due to Debian "buster" (Debian 10) repositories returning 404 for Release files, indicating end-of-life (Buster EOL). This suggests a mismatch between the base image (ruby:2.4.10) and the apt sources being used, where the Debian Buster repositories are no longer available.
Image ruby:3.2-slim-bullseye exists on Docker Hub.
FROM ruby:3.2-slim-bullseye
LABEL maintainer="BuildAgent" \
description="Image for running the backup Rubygem"
ENV APP_HOME /usr/src/backup
WORKDIR $APP_HOME
# Install dependencies for building native gems and runtime
RUN apt-get update && \
apt-get install -y --no-install-recommends \
build-essential \
ca-certificates \
curl \
git \
libxml2-dev \
libxslt1-dev \
libyaml-dev \
zlib1g-dev \
libcurl4-openssl-dev \
tzdata && \
rm -rf /var/lib/apt/lists/* && \
update-ca-certificates
# Copy source code into the image
COPY . .
# Install Ruby gem dependencies (excluding CI-only groups)
RUN bundle install --without no_ci
# Default to a shell
CMD ["bash"]
Concerns: Missing DEBIAN_FRONTEND=noninteractive to avoid tzdata prompts during apt-get install., No explicit step to build or install the gem from the repository (e.g., gem build/install) – the Dockerfile runs bundle install for dependencies, but does not install the gem itself. Smoke [PASS]: ruby -v Smoke [PASS]: bundle -v Smoke [PASS]: ls -la