Skip to content

Dev container references the retired vscode-dev-containers image generation #12

Description

@dmccoystephenson

The dev container definition still points at the retired microsoft/vscode-dev-containers generation of images and metadata. Facts read directly from the files in this repository:

.devcontainer/Dockerfile

# See here for image contents: https://github.com/microsoft/vscode-dev-containers/tree/v0.245.2/containers/cpp/.devcontainer/base.Dockerfile

# [Choice] Debian / Ubuntu version (...): debian-11, debian-10, ubuntu-22.04, ubuntu-20.04, ubuntu-18.04
ARG VARIANT="bullseye"
FROM mcr.microsoft.com/vscode/devcontainers/cpp:0-${VARIANT}

.devcontainer/devcontainer.json

// https://github.com/microsoft/vscode-dev-containers/tree/v0.245.2/containers/cpp
"args": { "VARIANT": "ubuntu-22.04" }
...
"extensions": [ "ms-vscode.cpptools", "ms-vscode.cmake-tools" ]

Four observations:

  1. Both files cite microsoft/vscode-dev-containers at tag v0.245.2. That repository has been superseded by devcontainers/templates and devcontainers/images, and the mcr.microsoft.com/vscode/devcontainers/* image namespace has been superseded by mcr.microsoft.com/devcontainers/*.
  2. The default ARG VARIANT="bullseye" in the Dockerfile is not one of the values its own [Choice] comment lists, and is overridden by devcontainer.json in any case, so the two files describe different defaults.
  3. The advertised VARIANT choices include debian-10 and ubuntu-18.04, both of which are past end of life.
  4. ms-vscode.cmake-tools is installed, but this template contains no CMakeLists.txt and builds through make. The extension is inherited by every project generated from the template without being used by it.

Suggested resolution: move to mcr.microsoft.com/devcontainers/cpp, refresh the [Choice] list and the default VARIANT so the two files agree, update the two documentation links, and drop ms-vscode.cmake-tools unless CMake support is intended.

Note on validation: none of this can be verified by this repository's build anchor, which compiles src/*.cpp and runs the result. Confirming a dev container change requires actually rebuilding and opening the container, so this should not be merged on a green make alone.

This issue was drafted during a Gardener session (https://github.com/Stephenson-Software/gardener).


drafted by Claude on behalf of Daniel Stephenson

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions