devcontainers / devcontainers/spec

Installing a dev container `feature` more than once in a `devcontainer.json`

Offen
#44 20 Kommentare 14 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
proposal
Vorherrschende Sprache
Keine Sprachdaten
Sterne
5.7k
Forks
496
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

The current [dev container features specification proposal](https://github.com/devcontainers/spec/blob/main/proposals/devcontainer-features.md#execution) is based on an array-like syntax for the 'features' attribute, and thus allows for the invocation of a single feature >1 with different options.

An execution goal stated in the spec is that
> "It should be possible to execute a feature multiple times with different parameters."

We are currently discussing how best to tackle [feature installation order (#43)](https://github.com/devcontainers/spec/issues/43), with the discussion leaning toward proceeding without use of an array, meaning that there is a need to explore other mechanisms for invoking a feature to install >1 times.

## Proposal

The propose extending the [value](https://github.com/devcontainers/cli/blob/main/src/spec-configuration/containerFeaturesConfiguration.ts#L33) to include an array of objects.

```jsonc
{
"image": "azcr.io/joshspicer/my-docker-image",
"features": {
"devcontainers/features/dotnet": [
{
"version": 3.1,
"runtimeOnly": true,
"installUsingApt": true
},
{
"version": 6.0,
"runtimeOnly": false,
"installUsingApt": false
}
]
}
}
```

This `devcontainer.json` will invoke the `devcontainers/features/dotnet` feature twice with two sets of options **in order** (first with the 3.1 set of arguments, and then 6.0 set of arguments).

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Read the execution section of the dev container features specification proposal and the linked src/spec-configuration/containerFeaturesConfiguration.ts definition first; compare them with the ordering discussion in issue #43. Define an agreed representation that permits repeated feature installations with distinct options in order, and confirm that the specification and configuration type describe the same behavior.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
docker
Bereich
tooling
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
30/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.