-
Notifications
You must be signed in to change notification settings - Fork 260
Open
Description
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
- Create a Gemfile with:
gem "sqlite-vec", ">= 0.1.7.alpha.2"- Create a Dockerfile for ARM64:
FROM phusion/passenger-ruby34
RUN gem install bundler -v 2.6.9
COPY Gemfile Gemfile.lock ./
RUN bundle install- 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(notaarch64-linux) - Bundler tries to match
aarch64-linuxbut can't find it
chrismytton
Metadata
Metadata
Assignees
Labels
No labels