From 904085dcb85ec65f94532143a5a37bb5ee375ff8 Mon Sep 17 00:00:00 2001
From: Chuck Lantz <chuck_lantz@hotmail.com>
Date: Thu, 9 Sep 2021 23:14:13 +0000
Subject: [PATCH 1/7] Ensure default works with base.Dockerfile

---
 containers/php/.devcontainer/devcontainer.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/containers/php/.devcontainer/devcontainer.json b/containers/php/.devcontainer/devcontainer.json
index 4a80e4af6d..97fe4a449e 100644
--- a/containers/php/.devcontainer/devcontainer.json
+++ b/containers/php/.devcontainer/devcontainer.json
@@ -6,7 +6,7 @@
 			// Update VARIANT to pick a PHP version: 8, 8.0, 7, 7.4, 7.3
 			// Append -bullseye or -buster to pin to an OS version.
 			// Use the -bullseye variants if you are on a M1 mac.
-			"VARIANT": "8-bullseye",
+			"VARIANT": "8-apache-bullseye",
 			"NODE_VERSION": "lts/*"
 		}
 	},

From 425e6bbc0f7f7258d6e24d9b1c00e4086db3532e Mon Sep 17 00:00:00 2001
From: Chuck Lantz <chuck_lantz@hotmail.com>
Date: Thu, 9 Sep 2021 23:14:52 +0000
Subject: [PATCH 2/7] Java 11/16 bullseye arm64

---
 containers/java/.devcontainer/Dockerfile      |  4 +--
 containers/java/.devcontainer/base.Dockerfile |  6 ++--
 .../java/.devcontainer/devcontainer.json      |  4 ++-
 containers/java/README.md                     | 17 ++++++----
 containers/java/definition-manifest.json      | 32 ++++++++++++++++---
 5 files changed, 45 insertions(+), 18 deletions(-)

diff --git a/containers/java/.devcontainer/Dockerfile b/containers/java/.devcontainer/Dockerfile
index 3b77dbc67d..1795dace6a 100644
--- a/containers/java/.devcontainer/Dockerfile
+++ b/containers/java/.devcontainer/Dockerfile
@@ -1,5 +1,5 @@
-# [Choice] Java version: 11, 16
-ARG VARIANT=11
+# [Choice] Java version: 11, 16, 11-bullseye, 16-bullseye, 11-buster, 16-buster
+ARG VARIANT=11-buster
 FROM mcr.microsoft.com/vscode/devcontainers/java:${VARIANT}
 
 # [Option] Install Maven
diff --git a/containers/java/.devcontainer/base.Dockerfile b/containers/java/.devcontainer/base.Dockerfile
index 9860949527..89847076c0 100644
--- a/containers/java/.devcontainer/base.Dockerfile
+++ b/containers/java/.devcontainer/base.Dockerfile
@@ -1,6 +1,6 @@
-# [Choice] Java version: 11, 16
-ARG VARIANT=11
-FROM openjdk:${VARIANT}-jdk-buster
+# [Choice] Java version: 11-jdk-bullseye, 16-jdk-bullseye, 11-jdk-buster, 16-jdk-buster
+ARG VARIANT=11-jdk-buster
+FROM openjdk:${VARIANT}
 
 # Copy library scripts to execute
 COPY library-scripts/*.sh library-scripts/*.env /tmp/library-scripts/
diff --git a/containers/java/.devcontainer/devcontainer.json b/containers/java/.devcontainer/devcontainer.json
index 70056da296..75b115bcd8 100644
--- a/containers/java/.devcontainer/devcontainer.json
+++ b/containers/java/.devcontainer/devcontainer.json
@@ -4,7 +4,9 @@
 		"dockerfile": "Dockerfile",
 		"args": {
 			// Update the VARIANT arg to pick a Java version: 11, 16
-			"VARIANT": "11",
+			// Append -bullseye or -buster to pin to an OS version.
+			// Use the -bullseye variants if you are on a M1 mac.
+			"VARIANT": "11-sdk-buster",
 			// Options
 			"INSTALL_MAVEN": "false",
 			"INSTALL_GRADLE": "false",
diff --git a/containers/java/README.md b/containers/java/README.md
index 02a1d58e66..dab2daa49c 100644
--- a/containers/java/README.md
+++ b/containers/java/README.md
@@ -10,8 +10,8 @@
 | *Categories* | Core, Languages |
 | *Definition type* | Dockerfile |
 | *Published images* | mcr.microsoft.com/vscode/devcontainers/java |
-| *Available image variants* | 11, 16 ([full list](https://mcr.microsoft.com/v2/vscode/devcontainers/java/tags/list)) |
-| *Published image architecture(s)* | x86-64 |
+| *Available image variants* | 11 / 11-buster, 16 / 16-buster, 11-bullseye, 16-bullseye ([full list](https://mcr.microsoft.com/v2/vscode/devcontainers/java/tags/list)) |
+| *Published image architecture(s)* | x86-64, arm64/aarch64 for `bullseye` variants |
 | *Works in Codespaces* | Yes |
 | *Container host OS support* | Linux, macOS, Windows |
 | *Container OS* | Debian |
@@ -26,20 +26,23 @@ See **[history](history)** for information on the contents of published images.
 While this definition should work unmodified, you can select the version of Java the container uses by updating the `VARIANT` arg in the included `devcontainer.json` (and rebuilding if you've already created the container).
 
 ```json
+// Or you can use 16-bullseye or 16-buster if you want to pin to an OS version
 "args": { "VARIANT": "16" }
 ```
 
 You can also directly reference pre-built versions of `.devcontainer/base.Dockerfile` by using the `image` property in `.devcontainer/devcontainer.json` or updating the `FROM` statement in your own  `Dockerfile` to one of the following. An example `Dockerfile` is included in this repository.
 
 - `mcr.microsoft.com/vscode/devcontainers/java` (latest)
-- `mcr.microsoft.com/vscode/devcontainers/java:11`
-- `mcr.microsoft.com/vscode/devcontainers/java:16`
+- `mcr.microsoft.com/vscode/devcontainers/java:11` (or `11-bullseye`, `11-buster` to pin to an OS version)
+- `mcr.microsoft.com/vscode/devcontainers/java:16` (or `16-bullseye`, `16-buster` to pin to an OS version)
 
 You can decide how often you want updates by referencing a [semantic version](https://semver.org/) of each image. For example:
 
-- `mcr.microsoft.com/vscode/devcontainers/java:0-11`
-- `mcr.microsoft.com/vscode/devcontainers/java:0.201-11`
-- `mcr.microsoft.com/vscode/devcontainers/java:0.201.5-11`
+- `mcr.microsoft.com/vscode/devcontainers/java:0-11` (or `0-11-bullseye`, `0-11-buster` to pin to an OS version)
+- `mcr.microsoft.com/vscode/devcontainers/java:0.203-11` (or `0.203-11-bullseye`, `0.203-11-buster` to pin to an OS version)
+- `mcr.microsoft.com/vscode/devcontainers/java:0.203.0-11` (or `0.203.0-11-bullseye`, `0.203.0-11-buster` to pin to an OS version)
+
+However, we only do security patching on the latest [non-breaking, in support](https://github.com/microsoft/vscode-dev-containers/issues/532) versions of images (e.g. `0-11`). You may want to run `apt-get update && apt-get upgrade` in your Dockerfile if you lock to a more specific version to at least pick up OS security updates.
 
 See [history](history) for information on the contents of each version and [here for a complete list of available tags](https://mcr.microsoft.com/v2/vscode/devcontainers/java/tags/list).
 
diff --git a/containers/java/definition-manifest.json b/containers/java/definition-manifest.json
index 3fc5321f40..87e8039ee9 100644
--- a/containers/java/definition-manifest.json
+++ b/containers/java/definition-manifest.json
@@ -1,15 +1,37 @@
 {
-	"variants": [ "16", "11" ],
-	"definitionVersion": "0.202.4",
+	"variants": [ "16-jdk-bullseye", "11-jdk-bullseye", "16-jdk-buster", "11-jdk-buster" ],
+	"definitionVersion": "0.203.0",
 	"build": {
-		"latest": true,
+		"latest": "16-jdk-buster",
 		"rootDistro": "debian",
+		"architectures": {
+			"16-jdk-bullseye": ["linux/amd64", "linux/arm64"],
+			"11-jdk-bullseye": ["linux/amd64", "linux/arm64"],
+			"16-jdk-buster": ["linux/amd64"],
+			"11-jdk-buster": ["linux/amd64"]
+		},
 		"tags": [
 			"java:${VERSION}-${VARIANT}"
-		]
+		],
+		"variantTags": {
+			"16-jdk-bullseye": [ 
+				"java:${VERSION}-16-bullseye",
+				"java:${VERSION}-bullseye"
+			],
+			"11-jdk-bullseye": [ "java:${VERSION}-11-bullseye" ],
+			"16-jdk-buster": [ 
+				"java:${VERSION}-16",
+				"java:${VERSION}-16-buster",
+				"java:${VERSION}-buster"
+			],
+			"11-jdk-buster": [ 
+				"java:${VERSION}-11",
+				"java:${VERSION}-11-buster"
+			]
+		}
 	},
 	"dependencies": {
-		"image": "openjdk:${VARIANT}-jdk-buster",
+		"image": "openjdk:${VARIANT}",
 		"imageLink": "https://hub.docker.com/_/java",
 		"apt": [{
 			"cgIgnore": false,

From 19cfb1f6c799f01b4be2717f7c0ec043c582156c Mon Sep 17 00:00:00 2001
From: Chuck Lantz <chuck_lantz@hotmail.com>
Date: Thu, 9 Sep 2021 16:25:08 -0700
Subject: [PATCH 3/7] Typo

---
 containers/java/.devcontainer/devcontainer.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/containers/java/.devcontainer/devcontainer.json b/containers/java/.devcontainer/devcontainer.json
index 75b115bcd8..988da74fb5 100644
--- a/containers/java/.devcontainer/devcontainer.json
+++ b/containers/java/.devcontainer/devcontainer.json
@@ -6,7 +6,7 @@
 			// Update the VARIANT arg to pick a Java version: 11, 16
 			// Append -bullseye or -buster to pin to an OS version.
 			// Use the -bullseye variants if you are on a M1 mac.
-			"VARIANT": "11-sdk-buster",
+			"VARIANT": "11-jdk-bullseye",
 			// Options
 			"INSTALL_MAVEN": "false",
 			"INSTALL_GRADLE": "false",

From 74290f5dc3473748f360a48946e8747696755de9 Mon Sep 17 00:00:00 2001
From: Chuck Lantz <chuck_lantz@hotmail.com>
Date: Thu, 9 Sep 2021 16:50:11 -0700
Subject: [PATCH 4/7] Java 8 bullseye arm64

---
 containers/java-8/.devcontainer/Dockerfile    |  4 ++-
 .../java-8/.devcontainer/base.Dockerfile      |  4 ++-
 .../java-8/.devcontainer/devcontainer.json    |  4 +++
 containers/java-8/README.md                   | 19 +++++++++----
 containers/java-8/definition-manifest.json    | 27 ++++++++++++++-----
 5 files changed, 45 insertions(+), 13 deletions(-)

diff --git a/containers/java-8/.devcontainer/Dockerfile b/containers/java-8/.devcontainer/Dockerfile
index 6d47d3553a..5c6ea77e94 100644
--- a/containers/java-8/.devcontainer/Dockerfile
+++ b/containers/java-8/.devcontainer/Dockerfile
@@ -1,4 +1,6 @@
-FROM mcr.microsoft.com/vscode/devcontainers/java:0-8
+# [Choice] Debian OS version: buster, bullseye
+ARG VARIANT="buster"
+FROM mcr.microsoft.com/vscode/devcontainers/java:0-8-${VARIANT}
 
 # [Option] Install Maven
 ARG INSTALL_MAVEN="false"
diff --git a/containers/java-8/.devcontainer/base.Dockerfile b/containers/java-8/.devcontainer/base.Dockerfile
index 98639cbaff..2cc95c7cac 100644
--- a/containers/java-8/.devcontainer/base.Dockerfile
+++ b/containers/java-8/.devcontainer/base.Dockerfile
@@ -1,4 +1,6 @@
-FROM mcr.microsoft.com/vscode/devcontainers/java:0-11
+# [Choice] Debian OS version: buster, bullseye
+ARG VARIANT="buster"
+FROM mcr.microsoft.com/vscode/devcontainers/java:0-11-${VARIANT}
 
 # Install JDK 8 and optionally Maven and Gradle - version of "" installs latest
 ARG JDK8_VERSION=""
diff --git a/containers/java-8/.devcontainer/devcontainer.json b/containers/java-8/.devcontainer/devcontainer.json
index 536c44d850..25d694ba3c 100644
--- a/containers/java-8/.devcontainer/devcontainer.json
+++ b/containers/java-8/.devcontainer/devcontainer.json
@@ -3,6 +3,10 @@
 	"build": {
 		"dockerfile": "Dockerfile",
 		"args": {
+			// Use the VARIANT arg to pick a Debian OS version: buster, bullseye
+			// Use bullseye when running locally on a M1 mac.
+			"VARIANT": "buster",
+			// Options
 			"INSTALL_MAVEN": "false",
 			"INSTALL_GRADLE": "false",
 			"NODE_VERSION": "lts/*"
diff --git a/containers/java-8/README.md b/containers/java-8/README.md
index 74cfefc9fa..9e49f19274 100644
--- a/containers/java-8/README.md
+++ b/containers/java-8/README.md
@@ -10,7 +10,8 @@
 | *Categories* | Core, Languages |
 | *Definition type* | Dockerfile |
 | *Published images* | mcr.microsoft.com/vscode/devcontainers/java:8 |
-| *Published image architecture(s)* | x86-64 |
+| *Available image variants* | 8 / 8-buster, 8-bullseye ([full list](https://mcr.microsoft.com/v2/vscode/devcontainers/java/tags/list)) |
+| *Published image architecture(s)* | x86-64, arm64/aarch64 for `bullseye` variant |
 | *Works in Codespaces* | Yes |
 | *Container host OS support* | Linux, macOS, Windows |
 | *Container OS* | Debian |
@@ -24,15 +25,23 @@ See **[history](history)** for information on the contents of published images.
 
 This definition includes both JDK 8 and JDK 11 due to the fact that the VS Code Java extension requires JDK 11+. The needed `devcontainer.json` settings are present to enable you to work with projects targeting Java 8.
 
+While this definition should work unmodified, you can select the version of Debian the container uses to run Java 8 by updating the `VARIANT` arg in the included `devcontainer.json` (and rebuilding if you've already created the container).
+
+```json
+"args": { "VARIANT": "bullseye" }
+```
+
 You can also directly reference pre-built versions of `.devcontainer/base.Dockerfile` by using the `image` property in `.devcontainer/devcontainer.json` or updating the `FROM` statement in your own  `Dockerfile` to one of the following. An example `Dockerfile` is included in this repository.
 
-- `mcr.microsoft.com/vscode/devcontainers/java:8`
+- `mcr.microsoft.com/vscode/devcontainers/java:8` (or `8-bullseye`, `8-buster` to pin to an OS version)
 
 You can decide how often you want updates by referencing a [semantic version](https://semver.org/) of each image. For example:
 
-- `mcr.microsoft.com/vscode/devcontainers/java:0-8`
-- `mcr.microsoft.com/vscode/devcontainers/java:0.201-8`
-- `mcr.microsoft.com/vscode/devcontainers/java:0.201.5-8`
+- `mcr.microsoft.com/vscode/devcontainers/java:0-8` (or `0-8-bullseye`, `0-8-buster` to pin to an OS version)
+- `mcr.microsoft.com/vscode/devcontainers/java:0.203-8` (or `0.203-8-bullseye`, `0.203-8-buster` to pin to an OS version)
+- `mcr.microsoft.com/vscode/devcontainers/java:0.203.0-8` (or `0.203.0-8-bullseye`, `0.203.0-8-buster` to pin to an OS version)
+
+However, we only do security patching on the latest [non-breaking, in support](https://github.com/microsoft/vscode-dev-containers/issues/532) versions of images (e.g. `0-8`). You may want to run `apt-get update && apt-get upgrade` in your Dockerfile if you lock to a more specific version to at least pick up OS security updates.
 
 See [history](history) for information on the contents of each version and [here for a complete list of available tags](https://mcr.microsoft.com/v2/vscode/devcontainers/java/tags/list).
 
diff --git a/containers/java-8/definition-manifest.json b/containers/java-8/definition-manifest.json
index eb832b33da..835b7a9e86 100644
--- a/containers/java-8/definition-manifest.json
+++ b/containers/java-8/definition-manifest.json
@@ -1,16 +1,31 @@
 {
-	"definitionVersion": "0.202.4",
+	"variants": [ "bullseye", "buster" ],
+	"definitionVersion": "0.203.0",
 	"build": {
-		"latest": false,
+		"latest": "buster",
 		"rootDistro": "debian",
 		"parent": "java",
-		"parentVariant": "11",
+		"parentVariant": {
+			"bullseye": "11-bullseye",
+			"buster": "11-buster"
+		},
+		"architectures": {
+			"bullseye": ["linux/amd64", "linux/arm64"],
+			"buster": ["linux/amd64"]
+		},
 		"tags": [
-			"java:${VERSION}-8"
-		]
+			"java:${VERSION}-8-${VARIANT}"
+		],
+		"variantTags": {
+			"buster": [ 
+				"java:${VERSION}-8",
+				"java:${VERSION}-8-jdk-buster"
+			],
+			"bullseye": [ "java:${VERSION}-8-jdk-bullseye" ]
+		}
 	},
 	"dependencies": {
-		"image": "mcr.microsoft.com/vscode/devcontainers/java:11",
+		"image": "mcr.microsoft.com/vscode/devcontainers/java:11-${VARIANT}",
 		"imageLink": "https://hub.docker.com/_/java",
 		"apt": [{
 			"cgIgnore": false,

From daa6b413a5d8dd0972e21b9e7c56fbab988edd20 Mon Sep 17 00:00:00 2001
From: Chuck Lantz <chuck_lantz@hotmail.com>
Date: Fri, 10 Sep 2021 00:29:37 +0000
Subject: [PATCH 5/7] Fix

---
 containers/java-8/definition-manifest.json | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/containers/java-8/definition-manifest.json b/containers/java-8/definition-manifest.json
index 835b7a9e86..7d2c6ca25f 100644
--- a/containers/java-8/definition-manifest.json
+++ b/containers/java-8/definition-manifest.json
@@ -6,8 +6,8 @@
 		"rootDistro": "debian",
 		"parent": "java",
 		"parentVariant": {
-			"bullseye": "11-bullseye",
-			"buster": "11-buster"
+			"bullseye": "11-jdk-bullseye",
+			"buster": "11-jdk-buster"
 		},
 		"architectures": {
 			"bullseye": ["linux/amd64", "linux/arm64"],

From acb07bd80d83200b0cabf46ebbfb61933c1d9142 Mon Sep 17 00:00:00 2001
From: Chuck Lantz <chuck_lantz@hotmail.com>
Date: Fri, 10 Sep 2021 01:30:32 +0000
Subject: [PATCH 6/7] Rust bullseye variant for arm64 support

---
 containers/rust/.devcontainer/Dockerfile      |  4 +++-
 containers/rust/.devcontainer/base.Dockerfile |  4 +++-
 .../rust/.devcontainer/devcontainer.json      |  7 +++++-
 containers/rust/README.md                     | 21 +++++++++++++-----
 containers/rust/definition-manifest.json      | 22 ++++++++++++++-----
 5 files changed, 44 insertions(+), 14 deletions(-)

diff --git a/containers/rust/.devcontainer/Dockerfile b/containers/rust/.devcontainer/Dockerfile
index af438752a0..1d81eafcd2 100644
--- a/containers/rust/.devcontainer/Dockerfile
+++ b/containers/rust/.devcontainer/Dockerfile
@@ -1,4 +1,6 @@
-FROM mcr.microsoft.com/vscode/devcontainers/rust:1
+# [Choice] Debian OS version: buster, bullseye
+ARG VARIANT="buster"
+FROM mcr.microsoft.com/vscode/devcontainers/rust:1-${VARAINT}
 
 # [Optional] Uncomment this section to install additional packages.
 # RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
diff --git a/containers/rust/.devcontainer/base.Dockerfile b/containers/rust/.devcontainer/base.Dockerfile
index 91bf9d452c..10172753a6 100644
--- a/containers/rust/.devcontainer/base.Dockerfile
+++ b/containers/rust/.devcontainer/base.Dockerfile
@@ -1,4 +1,6 @@
-FROM rust:1
+# [Choice] Debian OS version: buster, bullseye
+ARG VARIANT="buster"
+FROM rust:1-${VARIANT}
 
 # [Option] Install zsh
 ARG INSTALL_ZSH="true"
diff --git a/containers/rust/.devcontainer/devcontainer.json b/containers/rust/.devcontainer/devcontainer.json
index 7cf9687901..ad53e3f826 100644
--- a/containers/rust/.devcontainer/devcontainer.json
+++ b/containers/rust/.devcontainer/devcontainer.json
@@ -1,7 +1,12 @@
 {
 	"name": "Rust",
 	"build": {
-		"dockerfile": "Dockerfile"
+		"dockerfile": "Dockerfile",
+		"args": {
+			// Use the VARIANT arg to pick a Debian OS version: buster, bullseye
+			// Use bullseye when running locally on a M1 mac.
+			"VARIANT": "buster"
+		}
 	},
 	"runArgs": [
 		"--cap-add=SYS_PTRACE",
diff --git a/containers/rust/README.md b/containers/rust/README.md
index 388316e4ce..1eb8f78a6d 100644
--- a/containers/rust/README.md
+++ b/containers/rust/README.md
@@ -10,7 +10,8 @@
 | *Categories* | Core, Languages |
 | *Definition type* | Dockerfile |
 | *Published images* | mcr.microsoft.com/vscode/devcontainers/rust |
-| *Published image architecture(s)* | x86-64 |
+| *Available image variants* | buster, bullseye ([full list](https://mcr.microsoft.com/v2/vscode/devcontainers/rust/tags/list)) |
+| *Published image architecture(s)* | x86-64, arm64/aarch64 for `bullseye` variant |
 | *Works in Codespaces* | Yes |
 | *Container host OS support* | Linux, macOS, Windows |
 | *Container OS* | Debian |
@@ -20,17 +21,25 @@ See **[history](history)** for information on the contents of published images.
 
 ## Using this definition
 
-This definition does not require any special steps to use. Note that the `Cargo.toml` file in the root of this folder is for the test project and can be ignored.
+While this definition should work unmodified, you can select the version of Debian the container uses to run Rust by updating the `VARIANT` arg in the included `devcontainer.json` (and rebuilding if you've already created the container).
+
+```json
+"args": { "VARIANT": "bullseye" }
+```
+
 
 You can also directly reference pre-built versions of `.devcontainer/base.Dockerfile` by using the `image` property in `.devcontainer/devcontainer.json` or updating the `FROM` statement in your own `Dockerfile` to the following. An example `Dockerfile` is included in this repository.
 
-- `mcr.microsoft.com/vscode/devcontainers/rust` (or `rust:1`)
+- `mcr.microsoft.com/vscode/devcontainers/rust:latest` (or `bullseye`, `buster` to pin to an OS version)
+- `mcr.microsoft.com/vscode/devcontainers/rust:1` (or `1-bullseye`, `1-buster` to pin to an OS version)
 
 You can decide how often you want updates by referencing a [semantic version](https://semver.org/) of each image. For example:
 
-- `mcr.microsoft.com/vscode/devcontainers/rust:0-1`
-- `mcr.microsoft.com/vscode/devcontainers/rust:0.200-1`
-- `mcr.microsoft.com/vscode/devcontainers/rust:0.200.4-1`
+- `mcr.microsoft.com/vscode/devcontainers/rust:0-1` (or `0-1-bullseye`, `0-1-buster` to pin to an OS version)
+- `mcr.microsoft.com/vscode/devcontainers/rust:0.201-1` (or `0.201-1-bullseye`, `0.201-1-buster` to pin to an OS version)
+- `mcr.microsoft.com/vscode/devcontainers/rust:0.201.0-1` (or `0.201.0-1-bullseye`, `0.201.0-1-buster` to pin to an OS version)
+
+However, we only do security patching on the latest [non-breaking, in support](https://github.com/microsoft/vscode-dev-containers/issues/532) versions of images (e.g. `0-1`). You may want to run `apt-get update && apt-get upgrade` in your Dockerfile if you lock to a more specific version to at least pick up OS security updates.
 
 See [history](history) for information on the contents of each version and [here for a complete list of available tags](https://mcr.microsoft.com/v2/vscode/devcontainers/rust/tags/list).
 
diff --git a/containers/rust/definition-manifest.json b/containers/rust/definition-manifest.json
index e875ac5646..6fc4316b0b 100644
--- a/containers/rust/definition-manifest.json
+++ b/containers/rust/definition-manifest.json
@@ -1,14 +1,26 @@
 {
-	"definitionVersion": "0.200.8",
+	"variants": ["buster", "bullseye"],
+	"definitionVersion": "0.201.0",
 	"build": {
-		"latest": true,
+		"latest": "buster",
 		"rootDistro": "debian",
+		"architectures": {
+			"bullseye": ["linux/amd64", "linux/arm64"],
+			"buster": ["linux/amd64"]
+		},
 		"tags": [
-			"rust:${VERSION}-1"
-		]
+			"rust:${VERSION}-${VARIANT}"
+		],
+		"variantTags": {
+			"buster": [ 
+				"rust:${VERSION}-1",
+				"rust:${VERSION}-1-buster"
+			],
+			"bullseye": [ "rust:${VERSION}-1-bullseye" ]
+		}
 	},
 	"dependencies": {
-		"image": "rust:1",
+		"image": "rust:1-${VARIANT}",
 		"imageLink": "https://hub.docker.com/_/rust",
 		"apt": [
 			"lldb", 

From 45675b868733e58c78e9fa0a99623fe70ab088cc Mon Sep 17 00:00:00 2001
From: Chuck Lantz <chuck_lantz@hotmail.com>
Date: Fri, 10 Sep 2021 15:17:20 +0000
Subject: [PATCH 7/7] Tweak choice text

---
 containers/rust/.devcontainer/Dockerfile        | 2 +-
 containers/rust/.devcontainer/base.Dockerfile   | 2 +-
 containers/rust/.devcontainer/devcontainer.json | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/containers/rust/.devcontainer/Dockerfile b/containers/rust/.devcontainer/Dockerfile
index 1d81eafcd2..2b30beb879 100644
--- a/containers/rust/.devcontainer/Dockerfile
+++ b/containers/rust/.devcontainer/Dockerfile
@@ -1,4 +1,4 @@
-# [Choice] Debian OS version: buster, bullseye
+# [Choice] Debian OS version (use bullseye for arm64/Apple Silicon): buster, bullseye
 ARG VARIANT="buster"
 FROM mcr.microsoft.com/vscode/devcontainers/rust:1-${VARAINT}
 
diff --git a/containers/rust/.devcontainer/base.Dockerfile b/containers/rust/.devcontainer/base.Dockerfile
index 10172753a6..31cadfc158 100644
--- a/containers/rust/.devcontainer/base.Dockerfile
+++ b/containers/rust/.devcontainer/base.Dockerfile
@@ -1,4 +1,4 @@
-# [Choice] Debian OS version: buster, bullseye
+# [Choice] Debian OS version (use bullseye for arm64/Apple Silicon): buster, bullseye
 ARG VARIANT="buster"
 FROM rust:1-${VARIANT}
 
diff --git a/containers/rust/.devcontainer/devcontainer.json b/containers/rust/.devcontainer/devcontainer.json
index ad53e3f826..36e0aac596 100644
--- a/containers/rust/.devcontainer/devcontainer.json
+++ b/containers/rust/.devcontainer/devcontainer.json
@@ -4,7 +4,7 @@
 		"dockerfile": "Dockerfile",
 		"args": {
 			// Use the VARIANT arg to pick a Debian OS version: buster, bullseye
-			// Use bullseye when running locally on a M1 mac.
+			// Use bullseye when running locally on arm64/Apple Silicon.
 			"VARIANT": "buster"
 		}
 	},