devcontainers / devcontainers/features
Features should provide a meaningful error message if it's not supported by a devcontainer image
- 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