Skip to content

Maintain GLIBC and GLIBCXX requirement with the vscode-reh-web server and workspace

MR 1 - Build vscode build with debian buster and node 20 (gitlab-build-images!973 - merged)

MR 2 - Modify base image to debian buster (!123 - merged)

MR 3 - Bump vscode fork version for workspace tools image (gitlab-build-images!978 - merged)

MR 4 - Bump workspaces tools image to latest (gitlab!195928 - merged)

Description

GitLab VS Code fork is built using NodeJS which has a dependency on libc. Right now, Workspaces users are expected to have the relevant version of GLIBC in their container image as per our build of VS Code which we mentioned in our docs. However, this creates breaking impact to the users when we update the VS Code where support for previous versions of GLIBC is dropped (example gitlab!177739 (comment 2309581744) ). Furthermore, it restricts the images that can be used by Workspaces users. e.g. alpine cannot be used. This would also be problematic if we try to inject the GitLab VS Code fork into the CI jobs for debugging of CI jobs as per gitlab#505764 (comment 2268614612) and gitlab-com/content-sites/handbook!10804 (diffs) .

  • We will support the linux system which depend on GLIBC, as the doc calls out glibc requirement. Support for Alpine system is going to be a follow up.
  • Implementation: We will modify the gitlab-web-ide-vscode-fork to include the correct GLIBC *.so in the artifacts which are published. Then when we build the tools-injector image, will then ensure this *.so gets copied into the same location as the VS Code executable itself, and then modify the runtime init_tools.sh which starts VS Code to use this library, via the LD_LIBRARY_... ENV var being exported.

The solution to this is to package the GLIBC/MUSLC binaries along with GitLab VS Code fork's vscode-reh-web server.

Latest Update:

We have decided to build vscode fork with minimal version of GLIBC/GLIBCXX from debian image, and later workspace requirement would remain the same. Pls see discussions here, #52 (comment 2479944856)

Acceptance Criteria

  • add used GLIBC/MUSLC binaries, as a part of the web ide build when building the tooling image. Currently only linux amd64 is supported
  • and set ENV to use these binaries in gitlab-workspaces-tools
Edited by zli