From 191960968e971e0d8a6d4229f7619666038b173f Mon Sep 17 00:00:00 2001 From: Tatsuro Shibamura Date: Sun, 2 Aug 2026 17:25:09 +0900 Subject: [PATCH] Prebuild language runtime images --- .github/actions/smoke-test/build.sh | 24 +++- .github/workflows/prebuild.yml | 135 ++++++++++++++++++ .github/workflows/release.yml | 20 +++ .github/workflows/test-pr.yml | 43 +++++- README.md | 2 + .../.devcontainer/Dockerfile | 2 + .../.devcontainer/devcontainer.json | 9 ++ .../.devcontainer/Dockerfile | 1 + .../.devcontainer/devcontainer.json | 11 ++ .../.devcontainer/Dockerfile | 1 + .../.devcontainer/devcontainer.json | 12 ++ .../.devcontainer/Dockerfile | 1 + .../.devcontainer/devcontainer.json | 11 ++ .../.devcontainer/Dockerfile | 1 + .../.devcontainer/devcontainer.json | 11 ++ .../.devcontainer/Dockerfile | 1 + .../.devcontainer/devcontainer.json | 12 ++ .../.devcontainer/Dockerfile | 2 +- .../devcontainer-template.json | 2 +- .../.devcontainer/Dockerfile | 2 +- .../.devcontainer/devcontainer.json | 3 - .../devcontainer-template.json | 2 +- .../.devcontainer/Dockerfile | 2 +- .../.devcontainer/devcontainer.json | 4 - .../devcontainer-template.json | 2 +- .../.devcontainer/Dockerfile | 2 +- .../.devcontainer/devcontainer.json | 3 - .../devcontainer-template.json | 2 +- .../.devcontainer/Dockerfile | 2 +- .../.devcontainer/devcontainer.json | 3 - .../devcontainer-template.json | 2 +- .../.devcontainer/Dockerfile | 2 +- .../.devcontainer/devcontainer.json | 4 - .../devcontainer-template.json | 2 +- 34 files changed, 298 insertions(+), 40 deletions(-) create mode 100644 .github/workflows/prebuild.yml create mode 100644 prebuild/azure-functions-dotnet/.devcontainer/Dockerfile create mode 100644 prebuild/azure-functions-dotnet/.devcontainer/devcontainer.json create mode 100644 prebuild/azure-functions-go/.devcontainer/Dockerfile create mode 100644 prebuild/azure-functions-go/.devcontainer/devcontainer.json create mode 100644 prebuild/azure-functions-java/.devcontainer/Dockerfile create mode 100644 prebuild/azure-functions-java/.devcontainer/devcontainer.json create mode 100644 prebuild/azure-functions-node/.devcontainer/Dockerfile create mode 100644 prebuild/azure-functions-node/.devcontainer/devcontainer.json create mode 100644 prebuild/azure-functions-powershell/.devcontainer/Dockerfile create mode 100644 prebuild/azure-functions-powershell/.devcontainer/devcontainer.json create mode 100644 prebuild/azure-functions-python/.devcontainer/Dockerfile create mode 100644 prebuild/azure-functions-python/.devcontainer/devcontainer.json diff --git a/.github/actions/smoke-test/build.sh b/.github/actions/smoke-test/build.sh index 7d9a76c..5f9d8b2 100755 --- a/.github/actions/smoke-test/build.sh +++ b/.github/actions/smoke-test/build.sh @@ -8,6 +8,26 @@ shopt -s dotglob SRC_DIR="/tmp/${TEMPLATE_ID}" cp -R "src/${TEMPLATE_ID}" "${SRC_DIR}" +export DOCKER_BUILDKIT=1 +echo "(*) Installing @devcontainer/cli" +npm install -g @devcontainers/cli + +PREBUILD_DIR="prebuild/${TEMPLATE_ID}" +if [ -d "${PREBUILD_DIR}" ] ; then + RUNTIME_OPTION=$(jq -r '.options | keys[] | select(. != "azureFunctionsCliVersion")' "src/${TEMPLATE_ID}/devcontainer-template.json") + RUNTIME_VERSION=$(jq -r ".options | .${RUNTIME_OPTION} | .default" "src/${TEMPLATE_ID}/devcontainer-template.json") + PREBUILD_IMAGE="ghcr.io/shibayan/devcontainers/${TEMPLATE_ID}:${RUNTIME_VERSION}-noble" + + if [ -z "${RUNTIME_OPTION}" ] || [ -z "${RUNTIME_VERSION}" ] || [ "${RUNTIME_VERSION}" = "null" ] ; then + echo "Unable to determine the runtime version for '${TEMPLATE_ID}'" + exit 1 + fi + + echo "(*) Building prebuild image '${PREBUILD_IMAGE}'" + export RUNTIME_VERSION + devcontainer build --workspace-folder "${PREBUILD_DIR}" --image-name "${PREBUILD_IMAGE}" +fi + pushd "${SRC_DIR}" # Configure templates only if `devcontainer-template.json` contains the `options` property. @@ -46,10 +66,6 @@ if [ -d "${TEST_DIR}" ] ; then cp test/test-utils/* ${DEST_DIR} fi -export DOCKER_BUILDKIT=1 -echo "(*) Installing @devcontainer/cli" -npm install -g @devcontainers/cli - echo "Building Dev Container" ID_LABEL="test-container=${TEMPLATE_ID}" devcontainer up --id-label ${ID_LABEL} --workspace-folder "${SRC_DIR}" diff --git a/.github/workflows/prebuild.yml b/.github/workflows/prebuild.yml new file mode 100644 index 0000000..b94a558 --- /dev/null +++ b/.github/workflows/prebuild.yml @@ -0,0 +1,135 @@ +name: "Prebuild Dev Container Images" + +on: + workflow_dispatch: + push: + branches: + - master + paths: + - "prebuild/**" + - ".github/workflows/prebuild.yml" + - "src/*/devcontainer-template.json" + schedule: + - cron: "23 17 * * 0" + +concurrency: + group: prebuild-dev-container-images + cancel-in-progress: false + +jobs: + prepare: + runs-on: ubuntu-24.04 + outputs: + configs: ${{ steps.matrix.outputs.configs }} + steps: + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + + - name: Generate prebuild matrix + id: matrix + shell: bash + run: | + configs=$( + for manifest in src/*/devcontainer-template.json; do + template=$(basename "$(dirname "${manifest}")") + jq -c --arg template "${template}" ' + [ + .options + | to_entries[] + | select(.key != "azureFunctionsCliVersion") + | .value.proposals[] as $runtime + | { template: $template, runtime: $runtime } + ] + ' "${manifest}" + done | jq -sc 'add' + ) + echo "configs=${configs}" >> "${GITHUB_OUTPUT}" + + build: + needs: prepare + runs-on: ${{ matrix.os }} + permissions: + contents: read + packages: write + strategy: + fail-fast: false + matrix: + config: ${{ fromJSON(needs.prepare.outputs.configs) }} + os: + - ubuntu-24.04 + - ubuntu-24.04-arm + env: + RUNTIME_VERSION: ${{ matrix.config.runtime }} + IMAGE_NAME: ghcr.io/${{ github.repository_owner }}/devcontainers/${{ matrix.config.template }} + steps: + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + + - name: Log in to GitHub Container Registry + shell: bash + run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io --username "${{ github.actor }}" --password-stdin + + - name: Install Dev Container CLI + shell: bash + run: npm install --global @devcontainers/cli + + - name: Build and push architecture image + shell: bash + env: + RUNNER_ARCHITECTURE: ${{ runner.arch }} + run: | + case "${RUNNER_ARCHITECTURE}" in + X64) architecture=amd64 ;; + ARM64) architecture=arm64 ;; + *) echo "Unsupported runner architecture: ${RUNNER_ARCHITECTURE}" >&2; exit 1 ;; + esac + + devcontainer build \ + --workspace-folder "prebuild/${{ matrix.config.template }}" \ + --image-name "${IMAGE_NAME}:${RUNTIME_VERSION}-noble-${architecture}" \ + --label "org.opencontainers.image.source=https://github.com/${GITHUB_REPOSITORY}" \ + --label "org.opencontainers.image.revision=${GITHUB_SHA}" \ + --label "org.opencontainers.image.version=${RUNTIME_VERSION}-noble" \ + --push true + + merge: + needs: + - prepare + - build + runs-on: ubuntu-24.04 + permissions: + contents: read + packages: write + strategy: + fail-fast: false + matrix: + config: ${{ fromJSON(needs.prepare.outputs.configs) }} + env: + IMAGE_NAME: ghcr.io/${{ github.repository_owner }}/devcontainers/${{ matrix.config.template }} + RUNTIME_VERSION: ${{ matrix.config.runtime }} + steps: + - name: Log in to GitHub Container Registry + shell: bash + run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io --username "${{ github.actor }}" --password-stdin + + - name: Create multi-architecture image + shell: bash + run: | + tag="${RUNTIME_VERSION}-noble" + dated_tag="${tag}-$(date -u +%Y%m%d)" + revision_tag="${tag}-sha-${GITHUB_SHA::7}" + + docker buildx imagetools create \ + --tag "${IMAGE_NAME}:${tag}" \ + --tag "${IMAGE_NAME}:${dated_tag}" \ + --tag "${IMAGE_NAME}:${revision_tag}" \ + "${IMAGE_NAME}:${tag}-amd64" \ + "${IMAGE_NAME}:${tag}-arm64" + + - name: Verify image platforms + shell: bash + run: | + manifest=$(docker buildx imagetools inspect --raw "${IMAGE_NAME}:${RUNTIME_VERSION}-noble") + for architecture in amd64 arm64; do + jq -e --arg architecture "${architecture}" ' + any(.manifests[]; .platform.os == "linux" and .platform.architecture == $architecture) + ' <<< "${manifest}" > /dev/null + done diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 26064c9..986813a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -13,6 +13,26 @@ jobs: steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + - name: Verify prebuild images + shell: bash + run: | + for manifest_path in src/*/devcontainer-template.json; do + template=$(basename "$(dirname "${manifest_path}")") + runtime_option=$(jq -r '.options | keys[] | select(. != "azureFunctionsCliVersion")' "${manifest_path}") + + while IFS= read -r runtime_version; do + image="ghcr.io/${GITHUB_REPOSITORY_OWNER}/devcontainers/${template}:${runtime_version}-noble" + echo "Verifying ${image}" + manifest=$(docker buildx imagetools inspect --raw "${image}") + + for architecture in amd64 arm64; do + jq -e --arg architecture "${architecture}" ' + any(.manifests[]; .platform.os == "linux" and .platform.architecture == $architecture) + ' <<< "${manifest}" > /dev/null + done + done < <(jq -r ".options.${runtime_option}.proposals[]" "${manifest_path}") + done + - name: "Publish Templates" uses: devcontainers/action@1082abd5d2bf3a11abccba70eef98df068277772 # v1.4.3 with: diff --git a/.github/workflows/test-pr.yml b/.github/workflows/test-pr.yml index 61cd038..40b559f 100644 --- a/.github/workflows/test-pr.yml +++ b/.github/workflows/test-pr.yml @@ -12,17 +12,46 @@ jobs: id: filter with: filters: | - azure-functions-dotnet: ./**/azure-functions-dotnet/** - azure-functions-go: ./**/azure-functions-go/** - azure-functions-java: ./**/azure-functions-java/** - azure-functions-node: ./**/azure-functions-node/** - azure-functions-powershell: ./**/azure-functions-powershell/** - azure-functions-python: ./**/azure-functions-python/** + azure-functions-dotnet: + - ./**/azure-functions-dotnet/** + - .github/actions/smoke-test/** + - .github/workflows/prebuild.yml + - test/test-utils/** + - .github/workflows/test-pr.yml + azure-functions-go: + - ./**/azure-functions-go/** + - .github/actions/smoke-test/** + - .github/workflows/prebuild.yml + - test/test-utils/** + - .github/workflows/test-pr.yml + azure-functions-java: + - ./**/azure-functions-java/** + - .github/actions/smoke-test/** + - .github/workflows/prebuild.yml + - test/test-utils/** + - .github/workflows/test-pr.yml + azure-functions-node: + - ./**/azure-functions-node/** + - .github/actions/smoke-test/** + - .github/workflows/prebuild.yml + - test/test-utils/** + - .github/workflows/test-pr.yml + azure-functions-powershell: + - ./**/azure-functions-powershell/** + - .github/actions/smoke-test/** + - .github/workflows/prebuild.yml + - test/test-utils/** + - .github/workflows/test-pr.yml + azure-functions-python: + - ./**/azure-functions-python/** + - .github/actions/smoke-test/** + - .github/workflows/prebuild.yml + - test/test-utils/** + - .github/workflows/test-pr.yml test: needs: [detect-changes] runs-on: ${{ matrix.os }} - continue-on-error: true strategy: matrix: templates: ${{ fromJSON(needs.detect-changes.outputs.templates) }} diff --git a/README.md b/README.md index c270e16..08207ba 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,8 @@ A collection of [Dev Container Templates](https://containers.dev/implementors/te > All templates include the Azure Functions Core Tools (version selectable, default: `latest`). +All language runtimes are provided through prebuilt Ubuntu 24.04 images for both AMD64 and ARM64. The templates add the selected Azure Functions Core Tools version when the development container is created. + ## Usage 1. Open the Command Palette in VS Code and select **Dev Containers: Add Dev Container Configuration Files...** diff --git a/prebuild/azure-functions-dotnet/.devcontainer/Dockerfile b/prebuild/azure-functions-dotnet/.devcontainer/Dockerfile new file mode 100644 index 0000000..30ec343 --- /dev/null +++ b/prebuild/azure-functions-dotnet/.devcontainer/Dockerfile @@ -0,0 +1,2 @@ +ARG RUNTIME_VERSION +FROM mcr.microsoft.com/devcontainers/dotnet:${RUNTIME_VERSION}-noble diff --git a/prebuild/azure-functions-dotnet/.devcontainer/devcontainer.json b/prebuild/azure-functions-dotnet/.devcontainer/devcontainer.json new file mode 100644 index 0000000..8e7887a --- /dev/null +++ b/prebuild/azure-functions-dotnet/.devcontainer/devcontainer.json @@ -0,0 +1,9 @@ +{ + "name": "Azure Functions (.NET) Prebuild", + "build": { + "dockerfile": "Dockerfile", + "args": { + "RUNTIME_VERSION": "${localEnv:RUNTIME_VERSION}" + } + } +} diff --git a/prebuild/azure-functions-go/.devcontainer/Dockerfile b/prebuild/azure-functions-go/.devcontainer/Dockerfile new file mode 100644 index 0000000..2d66776 --- /dev/null +++ b/prebuild/azure-functions-go/.devcontainer/Dockerfile @@ -0,0 +1 @@ +FROM mcr.microsoft.com/devcontainers/base:noble diff --git a/prebuild/azure-functions-go/.devcontainer/devcontainer.json b/prebuild/azure-functions-go/.devcontainer/devcontainer.json new file mode 100644 index 0000000..aa3e012 --- /dev/null +++ b/prebuild/azure-functions-go/.devcontainer/devcontainer.json @@ -0,0 +1,11 @@ +{ + "name": "Azure Functions (Go) Prebuild", + "build": { + "dockerfile": "Dockerfile" + }, + "features": { + "ghcr.io/devcontainers/features/go:1": { + "version": "${localEnv:RUNTIME_VERSION}" + } + } +} diff --git a/prebuild/azure-functions-java/.devcontainer/Dockerfile b/prebuild/azure-functions-java/.devcontainer/Dockerfile new file mode 100644 index 0000000..2d66776 --- /dev/null +++ b/prebuild/azure-functions-java/.devcontainer/Dockerfile @@ -0,0 +1 @@ +FROM mcr.microsoft.com/devcontainers/base:noble diff --git a/prebuild/azure-functions-java/.devcontainer/devcontainer.json b/prebuild/azure-functions-java/.devcontainer/devcontainer.json new file mode 100644 index 0000000..f3b5c99 --- /dev/null +++ b/prebuild/azure-functions-java/.devcontainer/devcontainer.json @@ -0,0 +1,12 @@ +{ + "name": "Azure Functions (Java) Prebuild", + "build": { + "dockerfile": "Dockerfile" + }, + "features": { + "ghcr.io/devcontainers/features/java:1": { + "version": "${localEnv:RUNTIME_VERSION}", + "installMaven": true + } + } +} diff --git a/prebuild/azure-functions-node/.devcontainer/Dockerfile b/prebuild/azure-functions-node/.devcontainer/Dockerfile new file mode 100644 index 0000000..2d66776 --- /dev/null +++ b/prebuild/azure-functions-node/.devcontainer/Dockerfile @@ -0,0 +1 @@ +FROM mcr.microsoft.com/devcontainers/base:noble diff --git a/prebuild/azure-functions-node/.devcontainer/devcontainer.json b/prebuild/azure-functions-node/.devcontainer/devcontainer.json new file mode 100644 index 0000000..0ab1b42 --- /dev/null +++ b/prebuild/azure-functions-node/.devcontainer/devcontainer.json @@ -0,0 +1,11 @@ +{ + "name": "Azure Functions (Node.js) Prebuild", + "build": { + "dockerfile": "Dockerfile" + }, + "features": { + "ghcr.io/devcontainers/features/node:1": { + "version": "${localEnv:RUNTIME_VERSION}" + } + } +} diff --git a/prebuild/azure-functions-powershell/.devcontainer/Dockerfile b/prebuild/azure-functions-powershell/.devcontainer/Dockerfile new file mode 100644 index 0000000..7fcd6fc --- /dev/null +++ b/prebuild/azure-functions-powershell/.devcontainer/Dockerfile @@ -0,0 +1 @@ +FROM mcr.microsoft.com/devcontainers/dotnet:8.0-noble diff --git a/prebuild/azure-functions-powershell/.devcontainer/devcontainer.json b/prebuild/azure-functions-powershell/.devcontainer/devcontainer.json new file mode 100644 index 0000000..aaea938 --- /dev/null +++ b/prebuild/azure-functions-powershell/.devcontainer/devcontainer.json @@ -0,0 +1,11 @@ +{ + "name": "Azure Functions (PowerShell) Prebuild", + "build": { + "dockerfile": "Dockerfile" + }, + "features": { + "ghcr.io/devcontainers/features/powershell:1": { + "version": "${localEnv:RUNTIME_VERSION}" + } + } +} diff --git a/prebuild/azure-functions-python/.devcontainer/Dockerfile b/prebuild/azure-functions-python/.devcontainer/Dockerfile new file mode 100644 index 0000000..2d66776 --- /dev/null +++ b/prebuild/azure-functions-python/.devcontainer/Dockerfile @@ -0,0 +1 @@ +FROM mcr.microsoft.com/devcontainers/base:noble diff --git a/prebuild/azure-functions-python/.devcontainer/devcontainer.json b/prebuild/azure-functions-python/.devcontainer/devcontainer.json new file mode 100644 index 0000000..9a260a8 --- /dev/null +++ b/prebuild/azure-functions-python/.devcontainer/devcontainer.json @@ -0,0 +1,12 @@ +{ + "name": "Azure Functions (Python) Prebuild", + "build": { + "dockerfile": "Dockerfile" + }, + "features": { + "ghcr.io/devcontainers/features/python:1": { + "version": "${localEnv:RUNTIME_VERSION}", + "installTools": false + } + } +} diff --git a/src/azure-functions-dotnet/.devcontainer/Dockerfile b/src/azure-functions-dotnet/.devcontainer/Dockerfile index c3e1731..882b58b 100644 --- a/src/azure-functions-dotnet/.devcontainer/Dockerfile +++ b/src/azure-functions-dotnet/.devcontainer/Dockerfile @@ -1 +1 @@ -FROM mcr.microsoft.com/devcontainers/dotnet:${templateOption:dotnetVersion}-noble +FROM ghcr.io/shibayan/devcontainers/azure-functions-dotnet:${templateOption:dotnetVersion}-noble diff --git a/src/azure-functions-dotnet/devcontainer-template.json b/src/azure-functions-dotnet/devcontainer-template.json index 92721d6..8db1a72 100644 --- a/src/azure-functions-dotnet/devcontainer-template.json +++ b/src/azure-functions-dotnet/devcontainer-template.json @@ -1,6 +1,6 @@ { "id": "azure-functions-dotnet", - "version": "2.0.5", + "version": "2.0.6", "name": "Azure Functions (.NET)", "description": "Develop C# and .NET based Azure Functions. Includes all needed SDKs, extensions, and dependencies.", "documentationURL": "https://github.com/shibayan/devcontainers/tree/master/src/azure-functions-dotnet", diff --git a/src/azure-functions-go/.devcontainer/Dockerfile b/src/azure-functions-go/.devcontainer/Dockerfile index 2d66776..adeb898 100644 --- a/src/azure-functions-go/.devcontainer/Dockerfile +++ b/src/azure-functions-go/.devcontainer/Dockerfile @@ -1 +1 @@ -FROM mcr.microsoft.com/devcontainers/base:noble +FROM ghcr.io/shibayan/devcontainers/azure-functions-go:${templateOption:goVersion}-noble diff --git a/src/azure-functions-go/.devcontainer/devcontainer.json b/src/azure-functions-go/.devcontainer/devcontainer.json index 0910767..b7bdc21 100644 --- a/src/azure-functions-go/.devcontainer/devcontainer.json +++ b/src/azure-functions-go/.devcontainer/devcontainer.json @@ -13,9 +13,6 @@ "onAutoForward": "ignore" }, "features": { - "ghcr.io/devcontainers/features/go:1": { - "version": "${templateOption:goVersion}" - }, "ghcr.io/jlaundry/devcontainer-features/azure-functions-core-tools:1": { "version": "${templateOption:azureFunctionsCliVersion}" } diff --git a/src/azure-functions-go/devcontainer-template.json b/src/azure-functions-go/devcontainer-template.json index dfb97aa..57180d4 100644 --- a/src/azure-functions-go/devcontainer-template.json +++ b/src/azure-functions-go/devcontainer-template.json @@ -1,6 +1,6 @@ { "id": "azure-functions-go", - "version": "1.0.0", + "version": "1.0.1", "name": "Azure Functions (Go)", "description": "Develop Go based Azure Functions. Includes all needed SDKs, extensions, and dependencies.", "documentationURL": "https://github.com/shibayan/devcontainers/tree/master/src/azure-functions-go", diff --git a/src/azure-functions-java/.devcontainer/Dockerfile b/src/azure-functions-java/.devcontainer/Dockerfile index 2d66776..06cb0e8 100644 --- a/src/azure-functions-java/.devcontainer/Dockerfile +++ b/src/azure-functions-java/.devcontainer/Dockerfile @@ -1 +1 @@ -FROM mcr.microsoft.com/devcontainers/base:noble +FROM ghcr.io/shibayan/devcontainers/azure-functions-java:${templateOption:javaVersion}-noble diff --git a/src/azure-functions-java/.devcontainer/devcontainer.json b/src/azure-functions-java/.devcontainer/devcontainer.json index 7d6acb4..53b2729 100644 --- a/src/azure-functions-java/.devcontainer/devcontainer.json +++ b/src/azure-functions-java/.devcontainer/devcontainer.json @@ -13,10 +13,6 @@ "onAutoForward": "ignore" }, "features": { - "ghcr.io/devcontainers/features/java:1": { - "version": "${templateOption:javaVersion}", - "installMaven": true - }, "ghcr.io/jlaundry/devcontainer-features/azure-functions-core-tools:1": { "version": "${templateOption:azureFunctionsCliVersion}" } diff --git a/src/azure-functions-java/devcontainer-template.json b/src/azure-functions-java/devcontainer-template.json index 0b8b8a3..3be0033 100644 --- a/src/azure-functions-java/devcontainer-template.json +++ b/src/azure-functions-java/devcontainer-template.json @@ -1,6 +1,6 @@ { "id": "azure-functions-java", - "version": "2.0.5", + "version": "2.0.6", "name": "Azure Functions (Java)", "description": "Develop Java based Azure Functions. Includes all needed SDKs, extensions, and dependencies.", "documentationURL": "https://github.com/shibayan/devcontainers/tree/master/src/azure-functions-java", diff --git a/src/azure-functions-node/.devcontainer/Dockerfile b/src/azure-functions-node/.devcontainer/Dockerfile index 2d66776..585c3be 100644 --- a/src/azure-functions-node/.devcontainer/Dockerfile +++ b/src/azure-functions-node/.devcontainer/Dockerfile @@ -1 +1 @@ -FROM mcr.microsoft.com/devcontainers/base:noble +FROM ghcr.io/shibayan/devcontainers/azure-functions-node:${templateOption:nodeVersion}-noble diff --git a/src/azure-functions-node/.devcontainer/devcontainer.json b/src/azure-functions-node/.devcontainer/devcontainer.json index 3137a23..f1533a2 100644 --- a/src/azure-functions-node/.devcontainer/devcontainer.json +++ b/src/azure-functions-node/.devcontainer/devcontainer.json @@ -13,9 +13,6 @@ "onAutoForward": "ignore" }, "features": { - "ghcr.io/devcontainers/features/node:1": { - "version": "${templateOption:nodeVersion}" - }, "ghcr.io/jlaundry/devcontainer-features/azure-functions-core-tools:1": { "version": "${templateOption:azureFunctionsCliVersion}" } diff --git a/src/azure-functions-node/devcontainer-template.json b/src/azure-functions-node/devcontainer-template.json index a81dbc7..201b203 100644 --- a/src/azure-functions-node/devcontainer-template.json +++ b/src/azure-functions-node/devcontainer-template.json @@ -1,6 +1,6 @@ { "id": "azure-functions-node", - "version": "2.0.5", + "version": "2.0.6", "name": "Azure Functions (Node.js)", "description": "Develop JavaScript and TypeScript based Azure Functions. Includes all needed SDKs, extensions, and dependencies.", "documentationURL": "https://github.com/shibayan/devcontainers/tree/master/src/azure-functions-node", diff --git a/src/azure-functions-powershell/.devcontainer/Dockerfile b/src/azure-functions-powershell/.devcontainer/Dockerfile index 7fcd6fc..64be913 100644 --- a/src/azure-functions-powershell/.devcontainer/Dockerfile +++ b/src/azure-functions-powershell/.devcontainer/Dockerfile @@ -1 +1 @@ -FROM mcr.microsoft.com/devcontainers/dotnet:8.0-noble +FROM ghcr.io/shibayan/devcontainers/azure-functions-powershell:${templateOption:powerShellVersion}-noble diff --git a/src/azure-functions-powershell/.devcontainer/devcontainer.json b/src/azure-functions-powershell/.devcontainer/devcontainer.json index 728b82d..0bb1378 100644 --- a/src/azure-functions-powershell/.devcontainer/devcontainer.json +++ b/src/azure-functions-powershell/.devcontainer/devcontainer.json @@ -13,9 +13,6 @@ "onAutoForward": "ignore" }, "features": { - "ghcr.io/devcontainers/features/powershell:1": { - "version": "${templateOption:powerShellVersion}" - }, "ghcr.io/jlaundry/devcontainer-features/azure-functions-core-tools:1": { "version": "${templateOption:azureFunctionsCliVersion}" } diff --git a/src/azure-functions-powershell/devcontainer-template.json b/src/azure-functions-powershell/devcontainer-template.json index c761f86..fcbcf61 100644 --- a/src/azure-functions-powershell/devcontainer-template.json +++ b/src/azure-functions-powershell/devcontainer-template.json @@ -1,6 +1,6 @@ { "id": "azure-functions-powershell", - "version": "2.0.5", + "version": "2.0.6", "name": "Azure Functions (PowerShell)", "description": "Develop PowerShell based Azure Functions. Includes all needed SDKs, extensions, and dependencies.", "documentationURL": "https://github.com/shibayan/devcontainers/tree/master/src/azure-functions-powershell", diff --git a/src/azure-functions-python/.devcontainer/Dockerfile b/src/azure-functions-python/.devcontainer/Dockerfile index 2d66776..2fb84d4 100644 --- a/src/azure-functions-python/.devcontainer/Dockerfile +++ b/src/azure-functions-python/.devcontainer/Dockerfile @@ -1 +1 @@ -FROM mcr.microsoft.com/devcontainers/base:noble +FROM ghcr.io/shibayan/devcontainers/azure-functions-python:${templateOption:pythonVersion}-noble diff --git a/src/azure-functions-python/.devcontainer/devcontainer.json b/src/azure-functions-python/.devcontainer/devcontainer.json index fb4fac5..4c650d4 100644 --- a/src/azure-functions-python/.devcontainer/devcontainer.json +++ b/src/azure-functions-python/.devcontainer/devcontainer.json @@ -13,10 +13,6 @@ "onAutoForward": "ignore" }, "features": { - "ghcr.io/devcontainers/features/python:1": { - "version": "${templateOption:pythonVersion}", - "installTools": false - }, "ghcr.io/jlaundry/devcontainer-features/azure-functions-core-tools:1": { "version": "${templateOption:azureFunctionsCliVersion}" } diff --git a/src/azure-functions-python/devcontainer-template.json b/src/azure-functions-python/devcontainer-template.json index 67bf454..07a1bf7 100644 --- a/src/azure-functions-python/devcontainer-template.json +++ b/src/azure-functions-python/devcontainer-template.json @@ -1,6 +1,6 @@ { "id": "azure-functions-python", - "version": "2.0.5", + "version": "2.0.6", "name": "Azure Functions (Python)", "description": "Develop Python based Azure Functions. Includes all needed SDKs, extensions, and dependencies.", "documentationURL": "https://github.com/shibayan/devcontainers/tree/master/src/azure-functions-python",