Summary
Pin the devcontainer base image to a specific version tag and align the Node.js version with copilot-setup-steps for reproducible builds.
Acceptance Criteria
- Base image changed from
mcr.microsoft.com/devcontainers/base:ubuntu to mcr.microsoft.com/devcontainers/base:0-ubuntu-22.04
- Node.js feature version changed from
"lts" to "20" to match copilot-setup-steps.yml
- Devcontainer features remain at major version pins (
:1) for security update coverage
- Existing codespace builds succeed after changes
Technical Details
The current unpinned base image (base:ubuntu) resolves to the latest Ubuntu LTS at build time, which can change without notice and break tool installations. Pinning to 0-ubuntu-22.04 provides stability while still receiving security patches within the Ubuntu 22.04 lifecycle.
Feature major version pins (:1) are appropriate because they receive minor and patch updates automatically, keeping tools current while maintaining API compatibility.
Summary
Pin the devcontainer base image to a specific version tag and align the Node.js version with copilot-setup-steps for reproducible builds.
Acceptance Criteria
mcr.microsoft.com/devcontainers/base:ubuntutomcr.microsoft.com/devcontainers/base:0-ubuntu-22.04"lts"to"20"to match copilot-setup-steps.yml:1) for security update coverageTechnical Details
The current unpinned base image (
base:ubuntu) resolves to the latest Ubuntu LTS at build time, which can change without notice and break tool installations. Pinning to0-ubuntu-22.04provides stability while still receiving security patches within the Ubuntu 22.04 lifecycle.Feature major version pins (
:1) are appropriate because they receive minor and patch updates automatically, keeping tools current while maintaining API compatibility.