mirror of
https://github.com/abhigyanpatwari/GitNexus.git
synced 2026-11-11 08:37:35 +00:00
fix(devcontainer): support packaged native runtime (#3763)
Use the matching Node 22.23.3 image on Debian 13 so libstdc++ provides GLIBCXX_3.4.31 for the bundled tree-sitter binary. Keep the multiarch digest pin and document rebuilding existing and prebuilt containers. Co-authored-by: Gergo Magyar <gergomagyar0@gmail.com>
This commit is contained in:
parent
b75e56a9cf
commit
a3e99e4b82
2 changed files with 18 additions and 6 deletions
|
|
@ -14,14 +14,16 @@
|
|||
# `@devcontainers/cli` / the VS Code Dev Containers resolver. That resolver's
|
||||
# image-name parser rejects the combined `name:tag@sha256:...` form.
|
||||
#
|
||||
# The digest below is for `5.2.3-22-bookworm` (Node 22.23.3). Workspace
|
||||
# The digest below is for `5.2.3-22-trixie` (Node 22.23.3). Workspace
|
||||
# dependencies require at least Node 22.22.2 on the Node 22 line. It is the
|
||||
# multi-arch manifest-list digest, so it still picks the right platform.
|
||||
# Debian 13's libstdc++ supplies GLIBCXX_3.4.31, required by the packaged
|
||||
# tree-sitter runtime. Debian 12's runtime is too old even with g++ installed.
|
||||
# To refresh it when bumping the readable tag, run:
|
||||
# docker buildx imagetools inspect \
|
||||
# mcr.microsoft.com/devcontainers/typescript-node:5.2.3-22-bookworm \
|
||||
# mcr.microsoft.com/devcontainers/typescript-node:5.2.3-22-trixie \
|
||||
# --format '{{json .Manifest.Digest}}'
|
||||
FROM mcr.microsoft.com/devcontainers/typescript-node@sha256:0cb6b4bfcb0458a6c1d2345934fb9de35da7b9d32343f47e49d9bd66feeac780
|
||||
FROM mcr.microsoft.com/devcontainers/typescript-node@sha256:e17cfac65d32af8e488fb00ee7b51b1e508b21958c05c8b652224a1f739deb08
|
||||
|
||||
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
|
||||
|
||||
|
|
@ -48,13 +50,14 @@ ENV BUN_VERSION=${BUN_VERSION} \
|
|||
# Native build toolchain that gitnexus/postinstall needs. It compiles
|
||||
# tree-sitter native bindings, the vendored Dart/Proto/Swift grammars, and the
|
||||
# @ladybugdb/core N-API addon (a native Node add-on). python3, make, and g++ are
|
||||
# required. util-linux supplies findmnt/mount for the 9p helper; the remaining
|
||||
# diagnostic tools support investigating process, memory and filesystem delays.
|
||||
# required; libstdc++6 provides the C++ runtime for shipped native prebuilds.
|
||||
# util-linux supplies findmnt/mount for the 9p helper; the remaining diagnostic
|
||||
# tools support investigating process, memory and filesystem delays.
|
||||
# This mirrors the apt block in the existing Dockerfile.cli /
|
||||
# gitnexus/Dockerfile.test images.
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
python3 make g++ git curl ca-certificates bash unzip util-linux procps lsof strace time jq ripgrep \
|
||||
python3 make g++ libstdc++6 git curl ca-certificates bash unzip util-linux procps lsof strace time jq ripgrep \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# UI profile: install OS dependencies at image-build time as root. Runtime
|
||||
|
|
|
|||
|
|
@ -439,6 +439,15 @@ Codex uses the [official standalone installer](https://developers.openai.com/cod
|
|||
|
||||
## Troubleshooting
|
||||
|
||||
If a native addon fails with `GLIBCXX_3.4.31 not found`, run **Dev Containers:
|
||||
Rebuild Container** after updating this checkout. The image uses Debian 13
|
||||
(Trixie) with a C++ runtime that supports the packaged tree-sitter binary, while
|
||||
keeping Node 22.23.3. Reinstalling npm packages or `g++` in an older Debian 12
|
||||
(Bookworm) container does not upgrade that system runtime. The default, native
|
||||
workspace, and UI build profiles all use this Dockerfile. If you selected a
|
||||
prebuilt image, pull an image published from this change or a later commit and
|
||||
recreate the container; a pinned older image keeps its older runtime.
|
||||
|
||||
If `[install-deps]` prints `npm warn EBADENGINE` with Node 22.16.0, run **Dev Containers: Rebuild Container** from the Command Palette after updating this checkout. The image now pins Node 22.23.3; workspace dependencies require at least 22.22.2 on the Node 22 line. Re-running `npm install` in the old container does not update its Node runtime.
|
||||
|
||||
| Symptom | Likely cause | Fix |
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue