Skip to content

Missing aarch64-linux platform gem for Docker ARM64 builds #248

@marcinwolskitds

Description

@marcinwolskitds

Platform detection mismatch for aarch64-linux in Docker builds

Problem

When building a Docker image for ARM64/aarch64 architecture, the sqlite-vec gem cannot be resolved by bundler due to a platform naming mismatch. The gem provides arm64-linux platform binaries, but Ruby/Bundler in Docker Linux containers detects the platform as aarch64-linux, causing bundler to fail to find a matching gem.

Environment

  • OS: Docker on Linux ARM64 (aarch64)
  • Ruby version: 3.4.0
  • Bundler version: 2.6.9
  • sqlite-vec version: 0.1.7-alpha.2
  • Base Docker image: Custom Passenger image (Ruby 3.4.0 on Debian-based Linux)
  • Architecture: linux/arm64 (aarch64)

Steps to Reproduce

  1. Create a Gemfile with:
gem "sqlite-vec", ">= 0.1.7.alpha.2"
  1. Create a Dockerfile for ARM64:
FROM phusion/passenger-ruby34
RUN gem install bundler -v 2.6.9
COPY Gemfile Gemfile.lock ./
RUN bundle install
  1. Build for ARM64 platform:
docker build -t test .

Error Output

Could not find gems matching 'sqlite-vec (>= 0.1.7.alpha.2)' valid for all
resolution platforms (arm64-darwin, arm64-linux, aarch64-linux) in rubygems
repository https://rubygems.org/ or installed locally.

The source contains the following gems matching 'sqlite-vec (>= 0.1.7.alpha.2)':
  * sqlite-vec-0.1.7.alpha.2-arm64-darwin
  * sqlite-vec-0.1.7.alpha.2-arm64-linux
  * sqlite-vec-0.1.7.alpha.2-x86_64-darwin
  * sqlite-vec-0.1.7.alpha.2-x86_64-linux
  * sqlite-vec-0.1.7.alpha.2-x86_64-mingw32

Analysis

When running in Docker on ARM64:

  • ruby -e "puts Gem::Platform.local" returns: aarch64-linux
  • Available gem platforms include: arm64-linux (not aarch64-linux)
  • Bundler tries to match aarch64-linux but can't find it

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions