devcontainers / devcontainers/features

Features should provide a meaningful error message if it's not supported by a devcontainer image

Ouverte
#765 4 commentaires 2 réactions 0 personnes assignées Voir sur GitHub
enhancement
Langage dominant
Shell
Étoiles
1.5k
Forks
621
Merge moyen
6 j 53 min
PR mergées (30 j)
9

Description

Most Features are only supported on Debian-based devcontainer images. Adding these features to an Alpine or Red Hat devcontainer often results in error messages such as "dpkg: not found."

An error message stating that the OS isn't supported would be more intuitive.

Given that the [common-utils](https://github.com/devcontainers/features/blob/d53b9d1816bac7a62f9ba5f20723eef428042d1f/src/common-utils/main.sh#L322) script already supports this (see below), it shouldn't be difficult to adapt in other features.

Requiring such a "preamble" may encourage developers to support other base devcontainer images, much like [common-utils](https://github.com/devcontainers/features/blob/d53b9d1816bac7a62f9ba5f20723eef428042d1f/src/common-utils/main.sh#L336) does.

```bash
# Bring in ID, ID_LIKE, VERSION_ID, VERSION_CODENAME
. /etc/os-release
# Get an adjusted ID independent of distro variants
if [ "${ID}" = "debian" ] || [ "${ID_LIKE}" = "debian" ]; then
ADJUSTED_ID="debian"
elif [[ "${ID}" = "rhel" || "${ID}" = "fedora" || "${ID}" = "mariner" || "${ID_LIKE}" = *"rhel"* || "${ID_LIKE}" = *"fedora"* || "${ID_LIKE}" = *"mariner"* ]]; then
ADJUSTED_ID="rhel"
elif [ "${ID}" = "alpine" ]; then
ADJUSTED_ID="alpine"
else
echo "Linux distro ${ID} not supported."
exit 1
fi
```

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez par src/common-utils/main.sh autour des lignes référencées 322 et 336, puis examinez les scripts d’installation des autres Features. Comparez la manière dont la détection de la distribution et les échecs liés aux systèmes d’exploitation non pris en charge sont gérés, et vérifiez que les Features concernées signalent une erreur explicite d’image non prise en charge plutôt qu’une erreur du gestionnaire de paquets.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
shell
Domaine
devops
Type d'issue
Fonctionnalité
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.