aboutsummaryrefslogtreecommitdiff
path: root/src/azure-cli
diff options
context:
space:
mode:
authorPaul Yu <paul.d.yu@gmail.com>2022-11-23 23:18:22 +0300
committerGitHub <noreply@github.com>2022-11-23 23:18:22 +0300
commit133b4cf23c6e4d6679940a8806f76877790c7f45 (patch)
tree017c6027e84089f6f99e862dd9c7bc9858e9b3a2 /src/azure-cli
parentc4648ab98cdeeb520e7e629c5db4a471ec802954 (diff)
Optionally install Azure Bicep as part of azure-cli feature (#305)
* Adding azure-cli bicep installer to correctly install on arm64 containers * Adding a few updates following @joshspicer's review.
Diffstat (limited to 'src/azure-cli')
-rw-r--r--src/azure-cli/devcontainer-feature.json7
-rwxr-xr-xsrc/azure-cli/install.sh25
2 files changed, 31 insertions, 1 deletions
diff --git a/src/azure-cli/devcontainer-feature.json b/src/azure-cli/devcontainer-feature.json
index 012e287..a2ba452 100644
--- a/src/azure-cli/devcontainer-feature.json
+++ b/src/azure-cli/devcontainer-feature.json
@@ -1,6 +1,6 @@
{
"id": "azure-cli",
- "version": "1.0.6",
+ "version": "1.0.7",
"name": "Azure CLI",
"documentationURL": "https://github.com/devcontainers/features/tree/main/src/azure-cli",
"description": "Installs the Azure CLI along with needed dependencies. Useful for base Dockerfiles that often are missing required install dependencies like gpg.",
@@ -17,6 +17,11 @@
"type": "string",
"default": "",
"description": "Optional comma separated list of Azure CLI extensions to install in profile."
+ },
+ "installBicep": {
+ "type": "boolean",
+ "description": "Optionally install Azure Bicep",
+ "default": false
}
},
"customizations": {
diff --git a/src/azure-cli/install.sh b/src/azure-cli/install.sh
index 99b4af5..31bc6d8 100755
--- a/src/azure-cli/install.sh
+++ b/src/azure-cli/install.sh
@@ -14,6 +14,7 @@ rm -rf /var/lib/apt/lists/*
AZ_VERSION=${VERSION:-"latest"}
AZ_EXTENSIONS=${EXTENSIONS}
+AZ_INSTALLBICEP=${INSTALLBICEP:-false}
MICROSOFT_GPG_KEYS_URI="https://packages.microsoft.com/keys/microsoft.asc"
AZCLI_ARCHIVE_ARCHITECTURES="amd64"
@@ -197,6 +198,30 @@ if [ ${#AZ_EXTENSIONS[@]} -gt 0 ]; then
done
fi
+if [ "${AZ_INSTALLBICEP}" = "true" ]; then
+ # Install dependencies
+ check_packages apt-transport-https curl
+
+ # Properly install Azure Bicep based on current architecture
+ # The `az bicep install` command installs the linux-x64 binary even on arm64 devcontainers
+ # The `az bicep install --target-platform` could be a solution; however, linux-arm64 is not an allowed value for this argument yet
+ # Manually installing Bicep and moving to the appropriate directory where az expects it to be
+
+ if [ "${architecture}" = "arm64" ]; then
+ curl -Lo bicep https://github.com/Azure/bicep/releases/latest/download/bicep-linux-arm64
+ else
+ curl -Lo bicep https://github.com/Azure/bicep/releases/latest/download/bicep-linux-x64
+ fi
+
+ chmod +x ./bicep
+ mv ./bicep /usr/local/bin/bicep
+
+ # Add a symlink so bicep can be accessed as a standalone executable or as part of az
+ mkdir -p ${_REMOTE_USER_HOME}/.azure/bin
+ chown -hR ${_REMOTE_USER}:${_REMOTE_USER} ${_REMOTE_USER_HOME}/.azure
+ ln -s /usr/local/bin/bicep ${_REMOTE_USER_HOME}/.azure/bin/bicep
+fi
+
# Clean up
rm -rf /var/lib/apt/lists/*