Skip to content

Commit 51260d6

Browse files
Merge branch 'devcontainers:gh-pages' into gh-pages
2 parents 5bf1274 + 9e1e1a2 commit 51260d6

9 files changed

+41
-21
lines changed

_data/collection-index.yml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -942,3 +942,23 @@
942942
contact: https://github.com/devcontainers-extra/features/issues
943943
repository: https://github.com/devcontainers-extra/features
944944
ociReference: ghcr.io/devcontainers-extra/features
945+
- name: devcontainer features by bas.codes
946+
maintainer: Bas Steins
947+
contact: https://bas.bio
948+
repository: https://github.com/sebst/devcontainer-features
949+
ociReference: ghcr.io/sebst/devcontainer-features
950+
- name: devcontainer features by rhiroe
951+
maintainer: rhiroe
952+
contact: https://github.com/rhiroe/features/issues
953+
repository: https://github.com/rhiroe/features
954+
ociReference: ghcr.io/rhiroe/features
955+
- name: devcontainer features by martinaskestad
956+
maintainer: martinaskestad
957+
contact: https://github.com/martinaskestad/features/issues
958+
repository: https://github.com/martinaskestad/features
959+
ociReference: ghcr.io/martinaskestad/features
960+
- name: devcontainer features for wolfi base docker image
961+
maintainer: David Zucker
962+
contact: https://github.com/davzucky/devcontainers-features-wolfi/issues
963+
repository: https://github.com/davzucky/devcontainers-features-wolfi
964+
ociReference: ghcr.io/davzucky/devcontainers-features-wolfi

_implementors/contributing.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ Here is a sample:
1919
| Property | Type | Description |
2020
|:------------------|:------------|:------------|
2121
| `image` | string | **Required** when using an image. The name of an image in a container registry ([DockerHub](https://hub.docker.com), [GitHub Container Registry](https://docs.github.com/packages/guides/about-github-container-registry), [Azure Container Registry](https://azure.microsoft.com/services/container-registry/)) that VS Code and other `devcontainer.json` supporting services / tools should use to create the dev container. |
22-
{: .table .table-bordered .table-responsive}
22+
{: .table .table-bordered}
2323

2424
- PRs to the [schema](https://github.com/microsoft/vscode/blob/main/extensions/configuration-editing/schemas/devContainer.schema.src.json), i.e code or shell scripts demonstrating approaches for implementation.
2525

_implementors/features-distribution.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ The `devcontainer-collection.json` is an auto-generated metadata file.
8181
| :--- | :--- | :--- |
8282
| `sourceInformation` | object | Metadata from the implementing packaging tool. |
8383
| `features` | array | The list of features that are contained in this collection.|
84-
{: .table .table-bordered .table-responsive}
84+
{: .table .table-bordered}
8585

8686
Each Features's `devcontainer-feature.json` metadata file is appended into the `features` top-level array.
8787

_implementors/features.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ The properties of the file are as follows:
5757
| `legacyIds` | array | Array of old IDs used to publish this Feature. The property is useful for renaming a currently published Feature within a single namespace. |
5858
| `deprecated` | boolean | Indicates that the Feature is deprecated, and will not receive any further updates/support. This property is intended to be used by the supporting tools for highlighting Feature deprecation. |
5959
| `mounts` | object | Defaults to unset. Cross-orchestrator way to add additional mounts to a container. Each value is an object that accepts the same values as the [Docker CLI `--mount` flag](https://docs.docker.com/engine/reference/commandline/run/#mount). The Pre-defined [devcontainerId](/implementors/json_reference#variables-in-devcontainerjson) variable may be referenced in the value. For example:<br />`"mounts": [{ "source": "dind-var-lib-docker", "target": "/var/lib/docker", "type": "volume" }]` |
60-
{: .table .table-bordered .table-responsive}
60+
{: .table .table-bordered}
6161

6262
(**) The ID must refer to either a Feature (1) published to an OCI registry, (2) a Feature Tgz URI, or (3) a Feature in the local file tree. Deprecated Feature identifiers (i.e GitHub Release) are not supported and the presence of this property may be considered a fatal error or ignored. For [local Features (ie: during development)](../features-distribution#addendum-locally-referenced), you may also depend on other local Features by providing a relative path to the Feature, relative to folder containing the active `devcontainer.json`. This behavior of Features within this property again mirror the `features` object in `devcontainer.json`.
6363

@@ -73,7 +73,7 @@ The following lifecycle hooks may be declared as properties of `devcontainer-fea
7373
| `postCreateCommand` | [string, array, object](/implementors/json_reference#formatting-string-vs-array-properties)|
7474
| `postStartCommand` | [string, array, object](/implementors/json_reference#formatting-string-vs-array-properties) |
7575
| `postAttachCommand` | [string, array, object](/implementors/json_reference#formatting-string-vs-array-properties) |
76-
{: .table .table-bordered .table-responsive}
76+
{: .table .table-bordered}
7777

7878
#### <a href="#behavior" name="behavior" class="anchor"> Behavior </a>
7979

@@ -144,7 +144,7 @@ The options property contains a map of option IDs and their related configuratio
144144
| `optionId.enum` | array | A strict list of allowed string values. Free-form values are **not** allowed. Omit when using `optionId.proposals`. |
145145
| `optionId.default` | string or boolean | Default value for the option. |
146146
| `optionId.description` | string | Description for the option. |
147-
{: .table .table-bordered .table-responsive}
147+
{: .table .table-bordered}
148148

149149
### <a href="#user-env-var" name="user-env-var" class="anchor"> User environment variables </a>
150150

@@ -264,7 +264,7 @@ The `id` format specified dicates how a supporting tool will locate and download
264264
| `<oci-registry>/<namespace>/<feature>[:<semantic-version>]` | Reference to feature in OCI registry(*) | `ghcr.io/user/repo/go` <br> `ghcr.io/user/repo/go:1` <br> `ghcr.io/user/repo/go:latest`|
265265
| `https://<uri-to-feature-tgz>` | Direct HTTPS URI to a tarball. | `https://github.com/user/repo/releases/devcontainer-feature-go.tgz` |
266266
| `./<path-to-feature-dir>`| A relative directory(**) to folder containing a devcontainer-feature.json. | `./myGoFeature` |
267-
{: .table .table-bordered .table-responsive}
267+
{: .table .table-bordered}
268268

269269
(*) OCI registry must implement the [OCI Artifact Distribution Specification](https://github.com/opencontainers/distribution-spec). Some implementors can be [found here](https://oras.land/implementors/).
270270

_implementors/json_reference.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ Metadata properties marked with a 🏷️️ can be stored in the `devcontainer.
3434
| `features` | object | An object of [Dev Container Feature IDs](../../features) and related options to be added into your primary container. The specific options that are available varies by feature, so see its documentation for additional details. For example: <br />`"features": { "ghcr.io/devcontainers/features/github-cli": {} }` |
3535
| `overrideFeatureInstallOrder` | array | By default, Features will attempt to automatically set the order they are installed based on a `installsAfter` property within each of them. This property allows you to override the Feature install order when needed. For example: <br />`"overrideFeatureInstallОrder": [ "ghcr.io/devcontainers/features/common-utils", "ghcr.io/devcontainers/features/github-cli" ]` |
3636
| `customizations` 🏷️| object | Product specific properties, defined in [supporting tools](../../supporting) |
37-
{: .table .table-bordered .table-responsive}
37+
{: .table .table-bordered}
3838

3939
## <a href="#scenario-specific" name="scenario-specific" class="anchor"> Scenario specific properties </a>
4040

@@ -55,7 +55,7 @@ The focus of `devcontainer.json` is to describe how to enrich a container for th
5555
| `workspaceMount` | string | Requires `workspaceFolder` be set as well. Overrides the default local mount point for the workspace when the container is created. Supports the same values as the [Docker CLI `--mount` flag](https://docs.docker.com/engine/reference/commandline/run/#mount). Environment and [pre-defined variables](#variables-in-devcontainerjson) may be referenced in the value. For example: <br />`"workspaceMount": "source=${localWorkspaceFolder}/sub-folder,target=/workspace,type=bind,consistency=cached", "workspaceFolder": "/workspace"` |
5656
| `workspaceFolder` | string | Requires `workspaceMount` be set. Sets the default path that `devcontainer.json` supporting services / tools should open when connecting to the container. Defaults to the automatic source code mount location. |
5757
| `runArgs` | array | An array of [Docker CLI arguments](https://docs.docker.com/engine/reference/commandline/run/) that should be used when running the container. Defaults to `[]`. For example, this allows ptrace based debuggers like C++ to work in the container:<br /> `"runArgs": [ "--cap-add=SYS_PTRACE", "--security-opt", "seccomp=unconfined" ]` . |
58-
{: .table .table-bordered .table-responsive}
58+
{: .table .table-bordered}
5959

6060
### <a href="#compose-specific" name="compose-specific" class="anchor"> Docker Compose specific properties </a>
6161

@@ -65,7 +65,7 @@ The focus of `devcontainer.json` is to describe how to enrich a container for th
6565
| `service` | string | **Required** when using [Docker Compose](https://docs.docker.com/compose/). The name of the service `devcontainer.json` supporting services / tools should connect to once running. |
6666
| `runServices` | array | An array of services in your Docker Compose configuration that should be started by `devcontainer.json` supporting services / tools. These will also be stopped when you disconnect unless `"shutdownAction"` is `"none"`. Defaults to all services. |
6767
| `workspaceFolder` | string | Sets the default path that `devcontainer.json` supporting services / tools should open when connecting to the container (which is often the path to a volume mount where the source code can be found in the container). Defaults to `"/"`. |
68-
{: .table .table-bordered .table-responsive}
68+
{: .table .table-bordered}
6969

7070
## <a href="#tool-specific" name="tool-specific" class="anchor"> Tool-specific properties </a>
7171

@@ -84,7 +84,7 @@ When creating or working with a dev container, you may need different commands t
8484
| `postStartCommand` 🏷️ | string,<br>array,<br>object | A command to run each time the container is successfully started.<br><br>Note that the array syntax will execute the command without a shell. You can [learn more](#formatting-string-vs-array-properties) about formatting string vs array vs object properties. |
8585
| `postAttachCommand` 🏷️ | string,<br>array,<br>object | A command to run each time a tool has successfully attached to the container.<br><br>Note that the array syntax will execute the command without a shell. You can [learn more](#formatting-string-vs-array-properties) about formatting string vs array vs object properties. |
8686
| `waitFor` 🏷️ | enum | An enum that specifies the command any tool should wait for before connecting. Defaults to `updateContentCommand`. This allows you to use `onCreateCommand` or `updateContentCommand` for steps that must happen before `devcontainer.json` supporting tools connect while still using `postCreateCommand` for steps that can happen behind the scenes afterwards. |
87-
{: .table .table-bordered .table-responsive}
87+
{: .table .table-bordered}
8888

8989
For each command property, if the value is a single string, it will be run in `/bin/sh`. Use `&&` in a string to execute multiple commands. For example, `"yarn install"` or `"apt-get update && apt-get install -y curl"`. The array syntax `["yarn", "install"]` will invoke the command (in this case `yarn`) directly without using a shell. Each fires after your source code has been mounted, so you can also run shell scripts from your source tree. For example: `bash scripts/install-dev-tools.sh`.
9090

@@ -100,7 +100,7 @@ While `devcontainer.json` does not focus on hardware or VM provisioning, it can
100100
| `hostRequirements.memory` 🏷️ | string | A string indicating minimum memory requirements with a `tb`, `gb`, `mb`, or `kb` suffix. For example, `"hostRequirements": {"memory": "4gb"}` |
101101
| `hostRequirements.storage` 🏷️ | string | A string indicating minimum storage requirements with a `tb`, `gb`, `mb`, or `kb` suffix. For example, `"hostRequirements": {"storage": "32gb"}` |
102102
| `hostRequirements.gpu` 🏷️ | boolean,<br>string,<br>object | Indicates if any GPU is required. A boolean indicates if a GPU is required or not. The string `"optional"` indicates that a GPU is used when available, but is not required.<br><br>The object syntax specifies how much GPU resources are required. The `cores` property indicates the minimum number of cores and the `memory` property indicates minimum storage requirements with a `tb`, `gb`, `mb`, or `kb` suffix. For example, `"gpu": { "cores": 1000, "storage": "32gb" }` |
103-
{: .table .table-bordered .table-responsive}
103+
{: .table .table-bordered}
104104

105105
## <a href="#port-attributes" name="port-attributes" class="anchor"> Port attributes </a>
106106

@@ -113,7 +113,7 @@ The `portsAttributes` and `otherPortsAttributes` properties allow you to map def
113113
| `onAutoForward` 🏷️ | enum | Controls what should happen when a port is auto-forwarded once you've connected to the container. `notify` is the default, and a notification will appear when the port is auto-forwarded. If set to `openBrowser`, the port will be opened in the system's default browser. A value of `openBrowserOnce` will open the browser only once. `openPreview` will open the URL in `devcontainer.json` supporting services' / tools' embedded preview browser. A value of `silent` will forward the port, but take no further action. A value of `ignore` means that this port should not be auto-forwarded at all. |
114114
| `requireLocalPort` 🏷️ | boolean | Dictates when port forwarding is required to map the port in the container to the same port locally or not. If set to `false`, the `devcontainer.json` supporting services / tools will attempt to use the specified port forward to `localhost`, and silently map to a different one if it is unavailable. If set to `true`, you will be notified if it is not possible to use the same port. Defaults to `false`. |
115115
| `elevateIfNeeded` 🏷️ | boolean | Forwarding low ports like 22, 80, or 443 to `localhost` on the same port from `devcontainer.json` supporting services / tools may require elevated permissions on certain operating systems. Setting this property to `true` will automatically try to elevate the `devcontainer.json` supporting tool's permissions in this situation. Defaults to `false`. |
116-
{: .table .table-bordered .table-responsive}
116+
{: .table .table-bordered}
117117

118118
## <a href="#formatting-string-vs-array-properties" name="formatting-string-vs-array-properties" class="anchor"> Formatting string vs. array properties </a>
119119

@@ -172,7 +172,7 @@ Variables can be referenced in certain string values in `devcontainer.json` in t
172172
| `${localWorkspaceFolderBasename}` | Any | Name of the local folder that was opened in the `devcontainer.json` supporting service / tool (that contains `.devcontainer/devcontainer.json`). |
173173
| `${containerWorkspaceFolderBasename}` | Any | Name of the folder where the workspace files can be found in the container. |
174174
| `${devcontainerId}` | Any | Allow Features to refer to an identifier that is unique to the dev container they are installed into and that is stable across rebuilds.<br> The properties supporting it in devcontainer.json are: `name`, `runArgs`, `initializeCommand`, `onCreateCommand`, `updateContentCommand`, `postCreateCommand`, `postStartCommand`, `postAttachCommand`, `workspaceFolder`, `workspaceMount`, `mounts`, `containerEnv`, `remoteEnv`, `containerUser`, `remoteUser`, and `customizations`. |
175-
{: .table .table-bordered .table-responsive}
175+
{: .table .table-bordered}
176176

177177
## <a href="#schema" name="schema" class="anchor"> Schema </a>
178178

_implementors/spec.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ To apply the metadata together with a user's `devcontainer.json` at runtime, the
9191
| `shutdownAction` | `string` (enum) | Last value wins. || |
9292
| `updateRemoteUserUID` | `boolean` | Last value wins. || |
9393
| `hostRequirements` | `cpus`, `memory`, `storage`, `gpu` | Max value wins. || |
94-
{: .table .table-bordered .table-responsive}
94+
{: .table .table-bordered}
9595

9696
Variables in string values will be substituted at the time the value is applied. When the order matters, the `devcontainer.json` is considered last.
9797

_implementors/templates-distribution.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ The `devcontainer-collection.json` is an auto-generated metadata file.
7878
| :--- | :--- | :--- |
7979
| `sourceInformation` | object | Metadata from the implementing packaging tool. |
8080
| `templates` | array | The list of Templates that are contained in this collection.|
81-
{: .table .table-bordered .table-responsive}
81+
{: .table .table-bordered}
8282

8383
Each Template's `devcontainer-template.json` metadata file is appended into the `templates` top-level array.
8484

_implementors/templates.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ The properties of the file are as follows:
4242
| `publisher` | string | Name of the publisher/maintainer of the Template. |
4343
| `keywords` | array | List of strings relevant to a user that would search for this Template. |
4444
| [`optionalPaths`](#optionalPaths) | array | An array of files or directories that tooling may consider "optional" when applying a Template. Directories are indicated with a trailing `/*`, (eg: `.github/*`).
45-
{: .table .table-bordered .table-responsive}
45+
{: .table .table-bordered}
4646

4747
### <a href="#options" name="options" class="anchor"> The `options` property</a>
4848
The `options` property contains a map of option IDs and their related configuration settings. These `options` are used by the supporting tools to prompt the user to choose from different Template configuration options. The tools would replace the option ID with the selected value in all the files (within the sub-directory of the Template). This replacement would happen before dropping the `.devcontainer.json` (or `.devcontainer/devcontainer.json`) and other files (within the sub-directory of the Template) required to containerize your project. See [option resolution](#option-resolution) for more details. For example:
@@ -68,7 +68,7 @@ The `options` property contains a map of option IDs and their related configurat
6868
| `optionId.proposals` | array | A list of suggested string values. Free-form values **are** allowed. Omit when using `optionId.enum`. |
6969
| `optionId.enum` | array | A strict list of allowed string values. Free-form values are **not** allowed. Omit when using `optionId.proposals`. |
7070
| `optionId.default` | string | Default value for the option. |
71-
{: .table .table-bordered .table-responsive}
71+
{: .table .table-bordered}
7272

7373
> `Note`: The `options` must be unique for every `devcontainer-template.json`
7474

0 commit comments

Comments
 (0)