firecracker-microvm / firecracker-microvm/firecracker-containerd
Agent doesn't build on docker container leading to possible glibc mismatch
- Dominant language
- Go
- Stars
- 2.9k
- Forks
- 247
- PR merge metrics
- No merged PRs in 30d
Description
When compiling firecracker and the other binaries, the agent is built on the host os. This is an issue as the GLIBC version on the host may not match the version in bullseye, the image used as the base for the vm image. Because of this, when I run the daemon on my machine pointing to the vm image i built on my machine, i get an error that the version of GLIBC is not new enough for the agent, causing the image to not boot.
I was able to make the issue go away by updating the debian version used in debootstrap, however this is temporary and will stop working when the GLIBC version on bullseye stops matching the version on my ubuntu version.
I think the best path forward is to use a debian container to build the agent. It should be the same base image as is used for the debootstrap so that the glibc version always matches between them.
I may make a pr for this.
Contributor guide
Research direction
Start by locating the build steps that compile the agent and other binaries, along with the debootstrap and VM image base configuration. Check how the host OS currently participates in the build, then verify that building in a matching Debian container produces an image whose agent boots without a GLIBC version mismatch.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- debian, docker, go
- Domain
- build-system, infrastructure
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100