diff --git a/docker/Dockerfile b/docker/Dockerfile
deleted file mode 100644
index 573c16210..000000000
--- a/docker/Dockerfile
+++ /dev/null
@@ -1,61 +0,0 @@
-# Build the kbcli binaries
-
-## docker buildx build injected build-args:
-#BUILDPLATFORM — matches the current machine. (e.g. linux/amd64)
-#BUILDOS — os component of BUILDPLATFORM, e.g. linux
-#BUILDARCH — e.g. amd64, arm64, riscv64
-#BUILDVARIANT — used to set build ARM variant, e.g. v7
-#TARGETPLATFORM — The value set with --platform flag on build
-#TARGETOS - OS component from --platform, e.g. linux
-#TARGETARCH - Architecture from --platform, e.g. arm64
-#TARGETVARIANT - used to set target ARM variant, e.g. v7
-
-ARG GO_VERSION=1.21
-
-FROM --platform=${BUILDPLATFORM} golang:${GO_VERSION} as builder
-ARG TARGETOS
-ARG TARGETARCH
-ARG GOPROXY
-#ARG GOPROXY=https://goproxy.cn
-ARG LD_FLAGS="-s -w"
-
-ENV GONOPROXY=github.com/apecloud
-ENV GONOSUMDB=github.com/apecloud
-ENV GOPRIVATE=github.com/apecloud
-ENV GOPROXY=${GOPROXY}
-
-WORKDIR /src
-
-# Copy the Go Modules manifests
-COPY go.mod go.mod
-COPY go.sum go.sum
-# cache deps before building and copying source so that we don't need to re-download as much
-# and so that source changes don't invalidate our downloaded layer
-# RUN go mod download
-RUN --mount=type=cache,target=/go/pkg/mod \
- go mod download
-
-# Build
-RUN --mount=type=bind,target=. \
- --mount=type=cache,target=/root/.cache/go-build \
- --mount=type=cache,target=/go/pkg/mod \
- CGO_ENABLED=0 GOOS=${TARGETOS} GOARCH=${TARGETARCH} go build -ldflags="${LD_FLAGS}" -a -o /out/kbcli cmd/cli/main.go
-
-# Use alpine with tag 20230329 is corresponding to "edge" tag (latest release to date is 3.18) as of 20230625
-FROM docker.io/alpine:edge as dist
-ARG APK_MIRROR
-
-# install tools via apk
-ENV APK_MIRROR=${APK_MIRROR}
-RUN if [ -n "${APK_MIRROR}" ]; then sed -i "s/dl-cdn.alpinelinux.org/${APK_MIRROR}/g" /etc/apk/repositories; fi
-RUN apk add --no-cache curl kubectl helm jq --allow-untrusted \
- && rm -rf /var/cache/apk/*
-
-# copy kbcli
-COPY --from=builder /out/kbcli /bin
-
-# mkdir kbcli config dir and helm cache dir.
-RUN mkdir /.kbcli && chown -R 65532:65532 /.kbcli \
- && mkdir /.cache && chown -R 65532:65532 /.cache
-USER 65532:65532
-
diff --git a/docker/custom-scripts/devcontainer-init.sh b/docker/custom-scripts/devcontainer-init.sh
deleted file mode 100644
index 4e6ff3cc0..000000000
--- a/docker/custom-scripts/devcontainer-init.sh
+++ /dev/null
@@ -1,66 +0,0 @@
-#!/usr/bin/env bash
-
-# Copyright 2021 The Dapr Authors
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# http://www.apache.org/licenses/LICENSE-2.0
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-#
-# Initializes the devcontainer tasks each time the container starts.
-# Users can edit this copy under /usr/local/share in the container to
-# customize this as needed for their custom localhost bindings.
-
-set -e
-echo "Running devcontainer-init.sh ..."
-
-# Clone kubectl and minikube config from host if requested when running local devcontainer.
-if [[ "${SYNC_LOCALHOST_KUBECONFIG,,}" == "true" && "${CODESPACES,,}" != "true" ]]; then
- mkdir -p ${HOME}/.kube
- if [ -d "${HOME}/.kube-localhost" ]; then
- cp -r ${HOME}/.kube-localhost/* ${HOME}/.kube
- fi
-
- # [EXPERIMENTAL] As a convenience feature, when using localhost minikube cluster in the devcontainer,
- # attempt to clone the credentials from the default localhost .minikube profile and fixup
- # the container's copy of .kube/config with the correct endpoint and path to cloned credentials.
- # It does not support modifying the minikube configuration from the container (minikube needs to already
- # be started on the local host) and assumes the only kubernetes context pointing to a localhost
- # server (i.e. 127.0.0.1 address) belongs to the minikube default profile and should be updated.
-
- if [ -d "${HOME}/.minikube-localhost" ]; then
- mkdir -p ${HOME}/.minikube
- if [ -r ${HOME}/.minikube-localhost/ca.crt ]; then
- cp -r ${HOME}/.minikube-localhost/ca.crt ${HOME}/.minikube
- sed -i -r "s|(\s*certificate-authority:\s).*|\\1${HOME}\/.minikube\/ca.crt|g" ${HOME}/.kube/config
- fi
- if [ -r ${HOME}/.minikube-localhost/profiles/minikube/client.crt ]; then
- cp -r ${HOME}/.minikube-localhost/profiles/minikube/client.crt ${HOME}/.minikube
- sed -i -r "s|(\s*client-certificate:\s).*|\\1${HOME}\/.minikube\/client.crt|g" ${HOME}/.kube/config
- fi
- if [ -r ${HOME}/.minikube-localhost/profiles/minikube/client.key ]; then
- cp -r ${HOME}/.minikube-localhost/profiles/minikube/client.key ${HOME}/.minikube
- sed -i -r "s|(\s*client-key:\s).*|\\1${HOME}\/.minikube\/client.key|g" ${HOME}/.kube/config
- fi
- if [ -r ${HOME}/.minikube-localhost/profiles/minikube/config.json ]; then
- ENDPOINT=$(grep -E '\"IP\":|\"Port\":' ${HOME}/.minikube-localhost/profiles/minikube/config.json \
- | sed -r '{N;s/\s*\"IP\": \"(.+)\",\s*\"Port\": ([0-9]*),/\1:\2/;}')
- sed -i -r 's/(server: https:\/\/)127.0.0.1:[0-9]*(.*)/\1'"${ENDPOINT}"'\2/' ${HOME}/.kube/config
- fi
- fi
-fi
-
-# Invoke /usr/local/share/docker-bind-mount.sh or docker-init.sh as appropriate
-set +e
-if [[ "${BIND_LOCALHOST_DOCKER,,}" == "true" ]]; then
- echo "Invoking docker-bind-mount.sh ..."
- exec /usr/local/share/docker-bind-mount.sh "$@"
-else
- echo "Invoking docker-init.sh ..."
- exec /usr/local/share/docker-init.sh "$@"
-fi
diff --git a/docker/custom-scripts/docker-bind-mount.sh b/docker/custom-scripts/docker-bind-mount.sh
deleted file mode 100644
index 45dcdd921..000000000
--- a/docker/custom-scripts/docker-bind-mount.sh
+++ /dev/null
@@ -1,85 +0,0 @@
-#!/usr/bin/env bash
-
-# Source: Adapted from https://github.com/microsoft/vscode-dev-containers/blob/v0.224.3/script-library/docker-debian.sh
-
-# Copyright 2021 The Dapr Authors
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# http://www.apache.org/licenses/LICENSE-2.0
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-set -e
-
-# Wrapper function to only use sudo if not already root
-sudoIf()
-{
- if [ "$(id -u)" -ne 0 ]; then
- sudo "$@"
- else
- "$@"
- fi
-}
-
-### Diff start
-USERNAME=$(whoami)
-SOURCE_SOCKET=/var/run/docker-host.sock
-TARGET_SOCKET=/var/run/docker.sock
-ENABLE_NONROOT_DOCKER="true"
-
-if [ "${SOURCE_SOCKET}" != "${TARGET_SOCKET}" ]; then
- sudoIf touch "${SOURCE_SOCKET}"
- sudoIf ln -s "${SOURCE_SOCKET}" "${TARGET_SOCKET}"
-fi
-### Diff end
-
-SOCAT_PATH_BASE=/tmp/vscr-docker-from-docker
-SOCAT_LOG=${SOCAT_PATH_BASE}.log
-SOCAT_PID=${SOCAT_PATH_BASE}.pid
-
-# Log messages
-log()
-{
- echo -e "[$(date)] $@" | sudoIf tee -a ${SOCAT_LOG} > /dev/null
-}
-
-echo -e "\n** $(date) **" | sudoIf tee -a ${SOCAT_LOG} > /dev/null
-log "Ensuring ${USERNAME} has access to ${SOURCE_SOCKET} via ${TARGET_SOCKET}"
-
-# If enabled, try to add a docker group with the right GID. If the group is root,
-# fall back on using socat to forward the docker socket to another unix socket so
-# that we can set permissions on it without affecting the host.
-if [ "${ENABLE_NONROOT_DOCKER}" = "true" ] && [ "${SOURCE_SOCKET}" != "${TARGET_SOCKET}" ] && [ "${USERNAME}" != "root" ] && [ "${USERNAME}" != "0" ]; then
- SOCKET_GID=$(stat -c '%g' ${SOURCE_SOCKET})
- if [ "${SOCKET_GID}" != "0" ]; then
- log "Adding user to group with GID ${SOCKET_GID}."
- if [ "$(cat /etc/group | grep :${SOCKET_GID}:)" = "" ]; then
- sudoIf groupadd --gid ${SOCKET_GID} docker-host
- fi
- # Add user to group if not already in it
- if [ "$(id ${USERNAME} | grep -E "groups.*(=|,)${SOCKET_GID}\(")" = "" ]; then
- sudoIf usermod -aG ${SOCKET_GID} ${USERNAME}
- fi
- else
- # Enable proxy if not already running
- if [ ! -f "${SOCAT_PID}" ] || ! ps -p $(cat ${SOCAT_PID}) > /dev/null; then
- log "Enabling socket proxy."
- log "Proxying ${SOURCE_SOCKET} to ${TARGET_SOCKET} for vscode"
- sudoIf rm -rf ${TARGET_SOCKET}
- (sudoIf socat UNIX-LISTEN:${TARGET_SOCKET},fork,mode=660,user=${USERNAME} UNIX-CONNECT:${SOURCE_SOCKET} 2>&1 | sudoIf tee -a ${SOCAT_LOG} > /dev/null & echo "$!" | sudoIf tee ${SOCAT_PID} > /dev/null)
- else
- log "Socket proxy already running."
- fi
- fi
- log "Success"
-fi
-
-# Execute whatever commands were passed in (if any). This allows us
-# to set this script to ENTRYPOINT while still executing the default CMD.
-set +e
-exec "$@"
diff --git a/docker/custom-scripts/fetch-all-helm-charts.sh b/docker/custom-scripts/fetch-all-helm-charts.sh
deleted file mode 100644
index f435f61d9..000000000
--- a/docker/custom-scripts/fetch-all-helm-charts.sh
+++ /dev/null
@@ -1,48 +0,0 @@
-#!/usr/bin/env bash
-#
-# This script will fetch all dependent helm charts.
-#
-# Syntax: ./fetch-all-helm-charts.sh KB_CHART_DIR TARGET_DIR
-
-set -e
-
-if [ $# -ne 2 ]; then
- echo "Syntax: ./fetch-all-helm-charts.sh KB_CHART_DIR TARGET_DIR"
- exit 1
-fi
-
-KB_CHART_DIR=${1}
-TARGET_DIR=${2:-"charts"}
-MANIFESTS_DIR="/tmp/manifests"
-GITHUB_HELM_CHARTS_URL=https://github.com/apecloud/helm-charts/releases/download
-
-# make directories
-mkdir -p "${TARGET_DIR}"
-mkdir -p "${MANIFESTS_DIR}"
-
-# get all manifests
-helm version
-helm template "${KB_CHART_DIR}" --output-dir "${MANIFESTS_DIR}" --set addonChartLocationBase=$GITHUB_HELM_CHARTS_URL
-
-# travel all addon manifests and get the helm charts
-for f in "${MANIFESTS_DIR}/kubeblocks/templates/addons"/*; do
- if [ -d "${f}" ]; then
- continue
- fi
-
- kind=$(yq eval '.kind' "${f}")
- if [ "${kind}" != "Addon" ]; then
- continue
- fi
-
- # get helm chart location
- chartURL=$(yq eval '.spec.helm.chartLocationURL' "${f}")
- if [ -z "${chartURL}" ]; then
- echo "chartLocationURL is empty in ${f}"
- exit 1
- fi
-
- # fetch the helm chart
- echo "fetching helm chart from ${chartURL}"
- helm fetch "$chartURL" -d "${TARGET_DIR}"
-done
\ No newline at end of file
diff --git a/docker/custom-scripts/install-dapr-tools.sh b/docker/custom-scripts/install-dapr-tools.sh
deleted file mode 100644
index 1a9fe6266..000000000
--- a/docker/custom-scripts/install-dapr-tools.sh
+++ /dev/null
@@ -1,71 +0,0 @@
-#!/usr/bin/env bash
-#
-# Copyright 2021 The Dapr Authors
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# http://www.apache.org/licenses/LICENSE-2.0
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-#
-# Syntax: ./install-dapr-tools.sh [USERNAME] [GOROOT] [GOPATH] [DAPR_CLI_VERSION] [PROTOC_VERSION] [PROTOC_GEN_GO_VERSION] [PROTOC_GEN_GO_GRPC_VERSION] [GOLANGCI_LINT_VERSION]
-
-USERNAME=${1:-"dapr"}
-GOROOT=${2:-"/usr/local/go"}
-GOPATH=${3:-"/go"}
-DAPR_CLI_VERSION=${4:-""}
-PROTOC_VERSION=${5:-"21.1"}
-PROTOC_GEN_GO_VERSION=${6:-"1.28"}
-PROTOC_GEN_GO_GRPC_VERSION=${7:-"1.2"}
-GOLANGCI_LINT_VERSION=${8:-"1.45.2"}
-
-set -e
-
-if [ "$(id -u)" -ne 0 ]; then
- echo -e 'Script must be run as root. Use sudo, su, or add "USER root" to your Dockerfile before running this script.'
- exit 1
-fi
-
-# Install socat
-apt-get install -y socat
-
-# Install Dapr CLI
-dapr_cli_ver=""
-if [ "${DAPR_CLI_VERSION}" != "latest" ]; then
- dapr_cli_ver="${DAPR_CLI_VERSION}"
-fi
-wget -q https://raw.githubusercontent.com/dapr/cli/master/install/install.sh -O - | /bin/bash -s "${dapr_cli_ver}"
-
-# Install protoc compiler required by 'make gen-proto'
-architecture="$(uname -m)"
-case $architecture in
- x86_64) architecture="x86_64";;
- aarch64 | armv8*) architecture="aarch_64";;
- i?86) architecture="x86_32";;
- *) echo "(!) Architecture $architecture unsupported"; exit 1 ;;
-esac
-
-PROTOC_ZIP=protoc-${PROTOC_VERSION}-linux-${architecture}.zip
-curl -LO "https://github.com/protocolbuffers/protobuf/releases/download/v${PROTOC_VERSION}/${PROTOC_ZIP}"
-unzip -o "${PROTOC_ZIP}" -d /usr/local bin/protoc
-chmod -R 755 /usr/local/bin/protoc
-unzip -o "${PROTOC_ZIP}" -d /usr/local 'include/*'
-chmod -R 755 /usr/local/include/google/protobuf
-rm -f "${PROTOC_ZIP}"
-
-# Install protoc-gen-go and protoc-gen-go-grpc
-# Must be installed as the non-root user
-export GOBIN="${GOPATH}/bin"
-sudo -u ${USERNAME} --preserve-env=GOPATH,GOBIN,GOROOT \
- go install "google.golang.org/protobuf/cmd/protoc-gen-go@v${PROTOC_GEN_GO_VERSION}"
-sudo -u ${USERNAME} --preserve-env=GOPATH,GOBIN,GOROOT \
- go install "google.golang.org/grpc/cmd/protoc-gen-go-grpc@v${PROTOC_GEN_GO_GRPC_VERSION}"
-
-# Install golangci-lint using the recommended method (best to avoid using go install according to their docs)
-# Must be installed as the non-root user
-sudo -u ${USERNAME} --preserve-env=GOLANGCI_LINT_VERSION,GOPATH,GOBIN,GOROOT \
- sh -c 'curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b "${GOBIN}" "v${GOLANGCI_LINT_VERSION}"'
diff --git a/docker/custom-scripts/kubectl-helm-debian.sh b/docker/custom-scripts/kubectl-helm-debian.sh
deleted file mode 100644
index 0bf9d8f02..000000000
--- a/docker/custom-scripts/kubectl-helm-debian.sh
+++ /dev/null
@@ -1,232 +0,0 @@
-docker/#!/usr/bin/env bash
-
-# Copyright 2021 The Dapr Authors
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# http://www.apache.org/licenses/LICENSE-2.0
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-#
-# Initializes the devcontainer tasks each time the container starts.
-# Users can edit this copy under /usr/local/share in the container to
-# customize this as needed for their custom localhost bindings.
-
-# Source: https://github.com/microsoft/vscode-dev-containers/blob/v0.224.3/script-library/kubectl-helm-debian.sh
-
-#-------------------------------------------------------------------------------------------------------------
-# Copyright (c) Microsoft Corporation. All rights reserved.
-# Licensed under the MIT License. See https://go.microsoft.com/fwlink/?linkid=2090316 for license information.
-#-------------------------------------------------------------------------------------------------------------
-#
-# Docs: https://github.com/microsoft/vscode-dev-containers/blob/main/script-library/docs/kubectl-helm.md
-# Maintainer: The VS Code and Codespaces Teams
-#
-# Syntax: ./kubectl-helm-debian.sh [kubectl version] [Helm version] [minikube version] [kubectl SHA256] [Helm SHA256] [minikube SHA256]
-
-set -e
-
-KUBECTL_VERSION="${1:-"latest"}"
-HELM_VERSION="${2:-"latest"}"
-MINIKUBE_VERSION="${3:-"none"}" # latest is also valid
-KUBECTL_SHA256="${4:-"automatic"}"
-HELM_SHA256="${5:-"automatic"}"
-MINIKUBE_SHA256="${6:-"automatic"}"
-USERNAME=${7:-"automatic"}
-
-HELM_GPG_KEYS_URI="https://raw.githubusercontent.com/helm/helm/main/KEYS"
-GPG_KEY_SERVERS="keyserver hkp://keyserver.ubuntu.com:80
-keyserver hkps://keys.openpgp.org
-keyserver hkp://keyserver.pgp.com"
-
-if [ "$(id -u)" -ne 0 ]; then
- echo -e 'Script must be run as root. Use sudo, su, or add "USER root" to your Dockerfile before running this script.'
- exit 1
-fi
-
-# Determine the appropriate non-root user
-if [ "${USERNAME}" = "auto" ] || [ "${USERNAME}" = "automatic" ]; then
- USERNAME=""
- POSSIBLE_USERS=("vscode" "node" "codespace" "$(awk -v val=1000 -F ":" '$3==val{print $1}' /etc/passwd)")
- for CURRENT_USER in ${POSSIBLE_USERS[@]}; do
- if id -u ${CURRENT_USER} > /dev/null 2>&1; then
- USERNAME=${CURRENT_USER}
- break
- fi
- done
- if [ "${USERNAME}" = "" ]; then
- USERNAME=root
- fi
-elif [ "${USERNAME}" = "none" ] || ! id -u ${USERNAME} > /dev/null 2>&1; then
- USERNAME=root
-fi
-
-# Get central common setting
-get_common_setting() {
- if [ "${common_settings_file_loaded}" != "true" ]; then
- curl -sfL "https://aka.ms/vscode-dev-containers/script-library/settings.env" 2>/dev/null -o /tmp/vsdc-settings.env || echo "Could not download settings file. Skipping."
- common_settings_file_loaded=true
- fi
- if [ -f "/tmp/vsdc-settings.env" ]; then
- local multi_line=""
- if [ "$2" = "true" ]; then multi_line="-z"; fi
- local result="$(grep ${multi_line} -oP "$1=\"?\K[^\"]+" /tmp/vsdc-settings.env | tr -d '\0')"
- if [ ! -z "${result}" ]; then declare -g $1="${result}"; fi
- fi
- echo "$1=${!1}"
-}
-
-# Figure out correct version of a three part version number is not passed
-find_version_from_git_tags() {
- local variable_name=$1
- local requested_version=${!variable_name}
- if [ "${requested_version}" = "none" ]; then return; fi
- local repository=$2
- local prefix=${3:-"tags/v"}
- local separator=${4:-"."}
- local last_part_optional=${5:-"false"}
- if [ "$(echo "${requested_version}" | grep -o "." | wc -l)" != "2" ]; then
- local escaped_separator=${separator//./\\.}
- local last_part
- if [ "${last_part_optional}" = "true" ]; then
- last_part="(${escaped_separator}[0-9]+)?"
- else
- last_part="${escaped_separator}[0-9]+"
- fi
- local regex="${prefix}\\K[0-9]+${escaped_separator}[0-9]+${last_part}$"
- local version_list="$(git ls-remote --tags ${repository} | grep -oP "${regex}" | tr -d ' ' | tr "${separator}" "." | sort -rV)"
- if [ "${requested_version}" = "latest" ] || [ "${requested_version}" = "current" ] || [ "${requested_version}" = "lts" ]; then
- declare -g ${variable_name}="$(echo "${version_list}" | head -n 1)"
- else
- set +e
- declare -g ${variable_name}="$(echo "${version_list}" | grep -E -m 1 "^${requested_version//./\\.}([\\.\\s]|$)")"
- set -e
- fi
- fi
- if [ -z "${!variable_name}" ] || ! echo "${version_list}" | grep "^${!variable_name//./\\.}$" > /dev/null 2>&1; then
- echo -e "Invalid ${variable_name} value: ${requested_version}\nValid values:\n${version_list}" >&2
- exit 1
- fi
- echo "${variable_name}=${!variable_name}"
-}
-
-# Function to run apt-get if needed
-apt_get_update_if_needed()
-{
- if [ ! -d "/var/lib/apt/lists" ] || [ "$(ls /var/lib/apt/lists/ | wc -l)" = "0" ]; then
- echo "Running apt-get update..."
- apt-get update
- else
- echo "Skipping apt-get update."
- fi
-}
-
-# Checks if packages are installed and installs them if not
-check_packages() {
- if ! dpkg -s "$@" > /dev/null 2>&1; then
- apt_get_update_if_needed
- apt-get -y install --no-install-recommends "$@"
- fi
-}
-
-# Ensure apt is in non-interactive to avoid prompts
-export DEBIAN_FRONTEND=noninteractive
-
-# Install dependencies
-check_packages curl ca-certificates coreutils gnupg2 dirmngr bash-completion
-if ! type git > /dev/null 2>&1; then
- apt_get_update_if_needed
- apt-get -y install --no-install-recommends git
-fi
-
-architecture="$(uname -m)"
-case $architecture in
- x86_64) architecture="amd64";;
- aarch64 | armv8*) architecture="arm64";;
- aarch32 | armv7* | armvhf*) architecture="arm";;
- i?86) architecture="386";;
- *) echo "(!) Architecture $architecture unsupported"; exit 1 ;;
-esac
-
-# Install the kubectl, verify checksum
-echo "Downloading kubectl..."
-if [ "${KUBECTL_VERSION}" = "latest" ] || [ "${KUBECTL_VERSION}" = "lts" ] || [ "${KUBECTL_VERSION}" = "current" ] || [ "${KUBECTL_VERSION}" = "stable" ]; then
- KUBECTL_VERSION="$(curl -sSL https://dl.k8s.io/release/stable.txt)"
-else
- find_version_from_git_tags KUBECTL_VERSION ${GITHUB_PROXY}https://github.com/kubernetes/kubernetes
-fi
-if [ "${KUBECTL_VERSION::1}" != 'v' ]; then
- KUBECTL_VERSION="v${KUBECTL_VERSION}"
-fi
-curl -sSL -o /usr/local/bin/kubectl "https://dl.k8s.io/release/${KUBECTL_VERSION}/bin/linux/${architecture}/kubectl"
-chmod 0755 /usr/local/bin/kubectl
-if [ "$KUBECTL_SHA256" = "automatic" ]; then
- KUBECTL_SHA256="$(curl -sSL "https://dl.k8s.io/${KUBECTL_VERSION}/bin/linux/${architecture}/kubectl.sha256")"
-fi
-([ "${KUBECTL_SHA256}" = "dev-mode" ] || (echo "${KUBECTL_SHA256} */usr/local/bin/kubectl" | sha256sum -c -))
-if ! type kubectl > /dev/null 2>&1; then
- echo '(!) kubectl installation failed!'
- exit 1
-fi
-
-# kubectl bash completion
-kubectl completion bash > /etc/bash_completion.d/kubectl
-
-# kubectl zsh completion
-mkdir -p "/home/${USERNAME}/.oh-my-zsh/completions"
-kubectl completion zsh > "/home/${USERNAME}/.oh-my-zsh/completions/_kubectl"
-chown -R "${USERNAME}" "/home/${USERNAME}/.oh-my-zsh"
-
-# Install Helm, verify signature and checksum
-echo "Downloading Helm..."
-# find_version_from_git_tags HELM_VERSION "${GITHUB_PROXY}https://github.com/helm/helm"
-# if [ "${HELM_VERSION::1}" != 'v' ]; then
-# HELM_VERSION="v${HELM_VERSION}"
-# fi
-# echo curl "${GITHUB_PROXY}https://raw.githubusercontent.com/helm/helm/${HELM_VERSION}/scripts/get-helm-3"
-# curl "${GITHUB_PROXY}https://raw.githubusercontent.com/helm/helm/${HELM_VERSION}/scripts/get-helm-3" | bash
-
-curl https://baltocdn.com/helm/signing.asc | gpg --dearmor | sudo tee /usr/share/keyrings/helm.gpg > /dev/null
-apt-get install apt-transport-https --yes
-echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/helm.gpg] https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list
-apt-get update
-apt-get install --no-install-recommends helm
-
-if ! type helm > /dev/null 2>&1; then
- echo '(!) Helm installation failed!'
- exit 1
-fi
-
-# Install Minikube, verify checksum
-if [ "${MINIKUBE_VERSION}" != "none" ]; then
- echo "Downloading minikube..."
- if [ "${MINIKUBE_VERSION}" = "latest" ] || [ "${MINIKUBE_VERSION}" = "lts" ] || [ "${MINIKUBE_VERSION}" = "current" ] || [ "${MINIKUBE_VERSION}" = "stable" ]; then
- MINIKUBE_VERSION="latest"
- else
- find_version_from_git_tags MINIKUBE_VERSION ${GITHUB_PROXY}https://github.com/kubernetes/minikube
- if [ "${MINIKUBE_VERSION::1}" != "v" ]; then
- MINIKUBE_VERSION="v${MINIKUBE_VERSION}"
- fi
- fi
- # latest is also valid in the download URLs
- curl -sSL -o /usr/local/bin/minikube "https://storage.googleapis.com/minikube/releases/${MINIKUBE_VERSION}/minikube-linux-${architecture}"
- chmod 0755 /usr/local/bin/minikube
- if [ "$MINIKUBE_SHA256" = "automatic" ]; then
- MINIKUBE_SHA256="$(curl -sSL "https://storage.googleapis.com/minikube/releases/${MINIKUBE_VERSION}/minikube-linux-${architecture}.sha256")"
- fi
- ([ "${MINIKUBE_SHA256}" = "dev-mode" ] || (echo "${MINIKUBE_SHA256} */usr/local/bin/minikube" | sha256sum -c -))
- if ! type minikube > /dev/null 2>&1; then
- echo '(!) minikube installation failed!'
- exit 1
- fi
-fi
-
-if ! type docker > /dev/null 2>&1; then
- echo -e '\n(*) Warning: The docker command was not found.\n\nYou can use one of the following scripts to install it:\n\nhttps://github.com/microsoft/vscode-dev-containers/blob/main/script-library/docs/docker-in-docker.md\n\nor\n\nhttps://github.com/microsoft/vscode-dev-containers/blob/main/script-library/docs/docker.md'
-fi
-
-echo -e "\nDone!"
\ No newline at end of file
diff --git a/docker/custom-scripts/setup-docker-multiarch.sh b/docker/custom-scripts/setup-docker-multiarch.sh
deleted file mode 100644
index 34d290e66..000000000
--- a/docker/custom-scripts/setup-docker-multiarch.sh
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/usr/bin/env bash
-#
-# Copyright 2021 The Dapr Authors
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# http://www.apache.org/licenses/LICENSE-2.0
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# This script sets up the current environment to be able to build multi-arch Docker images, installing QEMU
-
-set -e
-
-# Set up QEMU
-docker run --privileged --rm tonistiigi/binfmt --install amd64,arm64,arm
-
-# Create a buildx builder with support for multi-arch
-docker buildx create --use --name mybuilder
diff --git a/docker/custom-scripts/setup-user.sh b/docker/custom-scripts/setup-user.sh
deleted file mode 100644
index 4f06f1f94..000000000
--- a/docker/custom-scripts/setup-user.sh
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/usr/bin/env bash
-#
-# Copyright 2021 The Dapr Authors
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# http://www.apache.org/licenses/LICENSE-2.0
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-#
-# Syntax: ./setup-user.sh [USERNAME] [SECURE_PATH_BASE]
-
-USERNAME=${1:-"kubeblocks"}
-SECURE_PATH_BASE=${2:-$PATH}
-
-set -e
-
-if [ "$(id -u)" -ne 0 ]; then
- echo -e 'Script must be run as root. Use sudo, su, or add "USER root" to your Dockerfile before running this script.'
- exit 1
-fi
-
-# Update the secure_path base
-echo "Defaults secure_path=\"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/bin:${SECURE_PATH_BASE}\"" >> /etc/sudoers.d/secure_path
-
-# Create the ~/.local/bin folder
-sudo -u ${USERNAME} mkdir -p /home/${USERNAME}/.local/bin
diff --git a/docker/docker.mk b/docker/docker.mk
deleted file mode 100644
index 3c485c3d2..000000000
--- a/docker/docker.mk
+++ /dev/null
@@ -1,71 +0,0 @@
-#
-#Copyright (C) 2022-2025 ApeCloud Co., Ltd
-#
-#This file is part of KubeBlocks project
-#
-#This program is free software: you can redistribute it and/or modify
-#it under the terms of the GNU Affero General Public License as published by
-#the Free Software Foundation, either version 3 of the License, or
-#(at your option) any later version.
-#
-#This program is distributed in the hope that it will be useful
-#but WITHOUT ANY WARRANTY; without even the implied warranty of
-#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-#GNU Affero General Public License for more details.
-#
-#You should have received a copy of the GNU Affero General Public License
-#along with this program. If not, see .
-#
-
-# To use buildx: https://github.com/docker/buildx#docker-ce
-export DOCKER_CLI_EXPERIMENTAL=enabled
-
-# Debian APT mirror repository
-DEBIAN_MIRROR ?=
-
-# Docker image build and push setting
-DOCKER:=DOCKER_BUILDKIT=1 docker
-DOCKERFILE_DIR?=./docker
-
-# BUILDX_PLATFORMS ?= $(subst -,/,$(ARCH))
-BUILDX_PLATFORMS ?= linux/amd64,linux/arm64
-
-# Image URL to use all building/pushing image targets
-IMG ?= docker.io/apecloud/$(APP_NAME)
-
-DOCKERFILE_DIR = ./docker
-GO_BUILD_ARGS ?= --build-arg GITHUB_PROXY=$(GITHUB_PROXY) --build-arg GOPROXY=$(GOPROXY)
-BUILD_ARGS ?=
-DOCKER_BUILD_ARGS ?=
-DOCKER_BUILD_ARGS += $(GO_BUILD_ARGS) $(BUILD_ARGS)
-
-##@ Docker containers
-
-.PHONY: build-image
-build-image: install-docker-buildx generate ## Build kbcli container image.
-ifneq ($(BUILDX_ENABLED), true)
- $(DOCKER) build . $(DOCKER_BUILD_ARGS) --file $(DOCKERFILE_DIR)/Dockerfile --tag ${IMG}:${VERSION} --tag ${IMG}:latest
-else
-ifeq ($(TAG_LATEST), true)
- $(DOCKER) buildx build . $(DOCKER_BUILD_ARGS) --file $(DOCKERFILE_DIR)/Dockerfile --platform $(BUILDX_PLATFORMS) --tag ${IMG}:latest
-else
- $(DOCKER) buildx build . $(DOCKER_BUILD_ARGS) --file $(DOCKERFILE_DIR)/Dockerfile --platform $(BUILDX_PLATFORMS) --tag ${IMG}:${VERSION}
-endif
-endif
-
-
-.PHONY: push-image
-push-image: install-docker-buildx generate ## Push kbcli container image.
-ifneq ($(BUILDX_ENABLED), true)
-ifeq ($(TAG_LATEST), true)
- $(DOCKER) push ${IMG}:latest
-else
- $(DOCKER) push ${IMG}:${VERSION}
-endif
-else
-ifeq ($(TAG_LATEST), true)
- $(DOCKER) buildx build . $(DOCKER_BUILD_ARGS) --file $(DOCKERFILE_DIR)/Dockerfile --platform $(BUILDX_PLATFORMS) --tag ${IMG}:latest --push
-else
- $(DOCKER) buildx build . $(DOCKER_BUILD_ARGS) --file $(DOCKERFILE_DIR)/Dockerfile --platform $(BUILDX_PLATFORMS) --tag ${IMG}:${VERSION} --push
-endif
-endif
diff --git a/docker/library-scripts/README.md b/docker/library-scripts/README.md
deleted file mode 100644
index 60ae89143..000000000
--- a/docker/library-scripts/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# Maintenance Note
-
-The contents of this folder are sourced from [vscode-dev-containers](https://github.com/microsoft/vscode-dev-containers) repository's [script-library folder](https://github.com/microsoft/vscode-dev-containers/tree/master/script-library). Any changes that are necessary should be contributed upstream to that repository instead.
diff --git a/docker/library-scripts/common-debian.sh b/docker/library-scripts/common-debian.sh
deleted file mode 100644
index 3176df0bf..000000000
--- a/docker/library-scripts/common-debian.sh
+++ /dev/null
@@ -1,464 +0,0 @@
-#!/usr/bin/env bash
-#-------------------------------------------------------------------------------------------------------------
-# Copyright (c) Microsoft Corporation. All rights reserved.
-# Licensed under the MIT License. See https://go.microsoft.com/fwlink/?linkid=2090316 for license information.
-#-------------------------------------------------------------------------------------------------------------
-#
-# Docs: https://github.com/microsoft/vscode-dev-containers/blob/main/script-library/docs/common.md
-# Maintainer: The VS Code and Codespaces Teams
-#
-# Syntax: ./common-debian.sh [install zsh flag] [username] [user UID] [user GID] [upgrade packages flag] [install Oh My Zsh! flag] [Add non-free packages]
-
-set -e
-
-INSTALL_ZSH=${1:-"true"}
-USERNAME=${2:-"automatic"}
-USER_UID=${3:-"automatic"}
-USER_GID=${4:-"automatic"}
-UPGRADE_PACKAGES=${5:-"true"}
-INSTALL_OH_MYS=${6:-"true"}
-ADD_NON_FREE_PACKAGES=${7:-"false"}
-SCRIPT_DIR="$(cd $(dirname "${BASH_SOURCE[0]}") && pwd)"
-MARKER_FILE="/usr/local/etc/vscode-dev-containers/common"
-
-if [ "$(id -u)" -ne 0 ]; then
- echo -e 'Script must be run as root. Use sudo, su, or add "USER root" to your Dockerfile before running this script.'
- exit 1
-fi
-
-# Ensure that login shells get the correct path if the user updated the PATH using ENV.
-rm -f /etc/profile.d/00-restore-env.sh
-echo "export PATH=${PATH//$(sh -lc 'echo $PATH')/\$PATH}" > /etc/profile.d/00-restore-env.sh
-chmod +x /etc/profile.d/00-restore-env.sh
-
-# If in automatic mode, determine if a user already exists, if not use vscode
-if [ "${USERNAME}" = "auto" ] || [ "${USERNAME}" = "automatic" ]; then
- USERNAME=""
- POSSIBLE_USERS=("vscode" "node" "codespace" "$(awk -v val=1000 -F ":" '$3==val{print $1}' /etc/passwd)")
- for CURRENT_USER in ${POSSIBLE_USERS[@]}; do
- if id -u ${CURRENT_USER} > /dev/null 2>&1; then
- USERNAME=${CURRENT_USER}
- break
- fi
- done
- if [ "${USERNAME}" = "" ]; then
- USERNAME=vscode
- fi
-elif [ "${USERNAME}" = "none" ]; then
- USERNAME=root
- USER_UID=0
- USER_GID=0
-fi
-
-# Load markers to see which steps have already run
-if [ -f "${MARKER_FILE}" ]; then
- echo "Marker file found:"
- cat "${MARKER_FILE}"
- source "${MARKER_FILE}"
-fi
-
-# Ensure apt is in non-interactive to avoid prompts
-export DEBIAN_FRONTEND=noninteractive
-
-# Function to call apt-get if needed
-apt_get_update_if_needed()
-{
- if [ ! -d "/var/lib/apt/lists" ] || [ "$(ls /var/lib/apt/lists/ | wc -l)" = "0" ]; then
- echo "Running apt-get update..."
- apt_switch_mirror_site
- apt-get update
- else
- echo "Skipping apt-get update."
- fi
-}
-
-# Replace Debian APT mirror sites.
-apt_switch_mirror_site()
-{
- if [ ! -z "$DEBIAN_MIRROR" ]; then
- sed -i -E "s/(deb|1|security)\.debian\.org/$DEBIAN_MIRROR/g" /etc/apt/sources.list
- fi
-}
-
-# Run install apt-utils to avoid debconf warning then verify presence of other common developer tools and dependencies
-if [ "${PACKAGES_ALREADY_INSTALLED}" != "true" ]; then
-
- package_list="apt-utils \
- openssh-client \
- gnupg2 \
- dirmngr \
- iproute2 \
- procps \
- lsof \
- htop \
- net-tools \
- psmisc \
- curl \
- wget \
- rsync \
- ca-certificates \
- unzip \
- zip \
- nano \
- vim-tiny \
- less \
- jq \
- lsb-release \
- apt-transport-https \
- dialog \
- libc6 \
- libgcc1 \
- libkrb5-3 \
- libgssapi-krb5-2 \
- libicu[0-9][0-9] \
- liblttng-ust[0-9] \
- libstdc++6 \
- zlib1g \
- locales \
- sudo \
- ncdu \
- man-db \
- strace \
- manpages \
- manpages-dev \
- init-system-helpers"
-
- # Needed for adding manpages-posix and manpages-posix-dev which are non-free packages in Debian
- if [ "${ADD_NON_FREE_PACKAGES}" = "true" ]; then
- # Bring in variables from /etc/os-release like VERSION_CODENAME
- . /etc/os-release
- sed -i -E "s/deb http:\/\/(deb|httpredir)\.debian\.org\/debian ${VERSION_CODENAME} main/deb http:\/\/\1\.debian\.org\/debian ${VERSION_CODENAME} main contrib non-free/" /etc/apt/sources.list
- sed -i -E "s/deb-src http:\/\/(deb|httredir)\.debian\.org\/debian ${VERSION_CODENAME} main/deb http:\/\/\1\.debian\.org\/debian ${VERSION_CODENAME} main contrib non-free/" /etc/apt/sources.list
- sed -i -E "s/deb http:\/\/(deb|httpredir)\.debian\.org\/debian ${VERSION_CODENAME}-updates main/deb http:\/\/\1\.debian\.org\/debian ${VERSION_CODENAME}-updates main contrib non-free/" /etc/apt/sources.list
- sed -i -E "s/deb-src http:\/\/(deb|httpredir)\.debian\.org\/debian ${VERSION_CODENAME}-updates main/deb http:\/\/\1\.debian\.org\/debian ${VERSION_CODENAME}-updates main contrib non-free/" /etc/apt/sources.list
- sed -i "s/deb http:\/\/security\.debian\.org\/debian-security ${VERSION_CODENAME}\/updates main/deb http:\/\/security\.debian\.org\/debian-security ${VERSION_CODENAME}\/updates main contrib non-free/" /etc/apt/sources.list
- sed -i "s/deb-src http:\/\/security\.debian\.org\/debian-security ${VERSION_CODENAME}\/updates main/deb http:\/\/security\.debian\.org\/debian-security ${VERSION_CODENAME}\/updates main contrib non-free/" /etc/apt/sources.list
- sed -i "s/deb http:\/\/deb\.debian\.org\/debian ${VERSION_CODENAME}-backports main/deb http:\/\/deb\.debian\.org\/debian ${VERSION_CODENAME}-backports main contrib non-free/" /etc/apt/sources.list
- sed -i "s/deb-src http:\/\/deb\.debian\.org\/debian ${VERSION_CODENAME}-backports main/deb http:\/\/deb\.debian\.org\/debian ${VERSION_CODENAME}-backports main contrib non-free/" /etc/apt/sources.list
- # Handle bullseye location for security https://www.debian.org/releases/bullseye/amd64/release-notes/ch-information.en.html
- sed -i "s/deb http:\/\/security\.debian\.org\/debian-security ${VERSION_CODENAME}-security main/deb http:\/\/security\.debian\.org\/debian-security ${VERSION_CODENAME}-security main contrib non-free/" /etc/apt/sources.list
- sed -i "s/deb-src http:\/\/security\.debian\.org\/debian-security ${VERSION_CODENAME}-security main/deb http:\/\/security\.debian\.org\/debian-security ${VERSION_CODENAME}-security main contrib non-free/" /etc/apt/sources.list
- echo "Running apt-get update..."
- apt_switch_mirror_site
- apt-get update
- package_list="${package_list} manpages-posix manpages-posix-dev"
- else
- apt_get_update_if_needed
- fi
-
- # Install libssl1.1 if available
- if [[ ! -z $(apt-cache --names-only search ^libssl1.1$) ]]; then
- package_list="${package_list} libssl1.1"
- fi
-
- # Install appropriate version of libssl1.0.x if available
- libssl_package=$(dpkg-query -f '${db:Status-Abbrev}\t${binary:Package}\n' -W 'libssl1\.0\.?' 2>&1 || echo '')
- if [ "$(echo "$LIlibssl_packageBSSL" | grep -o 'libssl1\.0\.[0-9]:' | uniq | sort | wc -l)" -eq 0 ]; then
- if [[ ! -z $(apt-cache --names-only search ^libssl1.0.2$) ]]; then
- # Debian 9
- package_list="${package_list} libssl1.0.2"
- elif [[ ! -z $(apt-cache --names-only search ^libssl1.0.0$) ]]; then
- # Ubuntu 18.04, 16.04, earlier
- package_list="${package_list} libssl1.0.0"
- fi
- fi
-
- echo "Packages to verify are installed: ${package_list}"
- apt-get -y install --no-install-recommends ${package_list} 2> >( grep -v 'debconf: delaying package configuration, since apt-utils is not installed' >&2 )
-
- # Install git if not already installed (may be more recent than distro version)
- if ! type git > /dev/null 2>&1; then
- apt-get -y install --no-install-recommends git
- fi
-
- PACKAGES_ALREADY_INSTALLED="true"
-fi
-
-# Get to latest versions of all packages
-if [ "${UPGRADE_PACKAGES}" = "true" ]; then
- apt_get_update_if_needed
- apt-get -y upgrade --no-install-recommends
- apt-get autoremove -y
-fi
-
-# Ensure at least the en_US.UTF-8 UTF-8 locale is available.
-# Common need for both applications and things like the agnoster ZSH theme.
-if [ "${LOCALE_ALREADY_SET}" != "true" ] && ! grep -o -E '^\s*en_US.UTF-8\s+UTF-8' /etc/locale.gen > /dev/null; then
- echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
- locale-gen
- LOCALE_ALREADY_SET="true"
-fi
-
-# Create or update a non-root user to match UID/GID.
-group_name="${USERNAME}"
-if id -u ${USERNAME} > /dev/null 2>&1; then
- # User exists, update if needed
- if [ "${USER_GID}" != "automatic" ] && [ "$USER_GID" != "$(id -g $USERNAME)" ]; then
- group_name="$(id -gn $USERNAME)"
- groupmod --gid $USER_GID ${group_name}
- usermod --gid $USER_GID $USERNAME
- fi
- if [ "${USER_UID}" != "automatic" ] && [ "$USER_UID" != "$(id -u $USERNAME)" ]; then
- usermod --uid $USER_UID $USERNAME
- fi
-else
- # Create user
- if [ "${USER_GID}" = "automatic" ]; then
- groupadd $USERNAME
- else
- groupadd --gid $USER_GID $USERNAME
- fi
- if [ "${USER_UID}" = "automatic" ]; then
- useradd -s /bin/bash --gid $USERNAME -m $USERNAME
- else
- useradd -s /bin/bash --uid $USER_UID --gid $USERNAME -m $USERNAME
- fi
-fi
-
-# Add sudo support for non-root user
-if [ "${USERNAME}" != "root" ] && [ "${EXISTING_NON_ROOT_USER}" != "${USERNAME}" ]; then
- echo $USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME
- chmod 0440 /etc/sudoers.d/$USERNAME
- EXISTING_NON_ROOT_USER="${USERNAME}"
-fi
-
-# ** Shell customization section **
-if [ "${USERNAME}" = "root" ]; then
- user_rc_path="/root"
-else
- user_rc_path="/home/${USERNAME}"
-fi
-
-# Restore user .bashrc defaults from skeleton file if it doesn't exist or is empty
-if [ ! -f "${user_rc_path}/.bashrc" ] || [ ! -s "${user_rc_path}/.bashrc" ] ; then
- cp /etc/skel/.bashrc "${user_rc_path}/.bashrc"
-fi
-
-# Restore user .profile defaults from skeleton file if it doesn't exist or is empty
-if [ ! -f "${user_rc_path}/.profile" ] || [ ! -s "${user_rc_path}/.profile" ] ; then
- cp /etc/skel/.profile "${user_rc_path}/.profile"
-fi
-
-# .bashrc/.zshrc snippet
-rc_snippet="$(cat << 'EOF'
-
-if [ -z "${USER}" ]; then export USER=$(whoami); fi
-if [[ "${PATH}" != *"$HOME/.local/bin"* ]]; then export PATH="${PATH}:$HOME/.local/bin"; fi
-
-# Display optional first run image specific notice if configured and terminal is interactive
-if [ -t 1 ] && [[ "${TERM_PROGRAM}" = "vscode" || "${TERM_PROGRAM}" = "codespaces" ]] && [ ! -f "$HOME/.config/vscode-dev-containers/first-run-notice-already-displayed" ]; then
- if [ -f "/usr/local/etc/vscode-dev-containers/first-run-notice.txt" ]; then
- cat "/usr/local/etc/vscode-dev-containers/first-run-notice.txt"
- elif [ -f "/workspaces/.codespaces/shared/first-run-notice.txt" ]; then
- cat "/workspaces/.codespaces/shared/first-run-notice.txt"
- fi
- mkdir -p "$HOME/.config/vscode-dev-containers"
- # Mark first run notice as displayed after 10s to avoid problems with fast terminal refreshes hiding it
- ((sleep 10s; touch "$HOME/.config/vscode-dev-containers/first-run-notice-already-displayed") &)
-fi
-
-# Set the default git editor if not already set
-if [ -z "$(git config --get core.editor)" ] && [ -z "${GIT_EDITOR}" ]; then
- if [ "${TERM_PROGRAM}" = "vscode" ]; then
- if [[ -n $(command -v code-insiders) && -z $(command -v code) ]]; then
- export GIT_EDITOR="code-insiders --wait"
- else
- export GIT_EDITOR="code --wait"
- fi
- fi
-fi
-
-EOF
-)"
-
-# code shim, it fallbacks to code-insiders if code is not available
-cat << 'EOF' > /usr/local/bin/code
-#!/bin/sh
-
-get_in_path_except_current() {
- which -a "$1" | grep -A1 "$0" | grep -v "$0"
-}
-
-code="$(get_in_path_except_current code)"
-
-if [ -n "$code" ]; then
- exec "$code" "$@"
-elif [ "$(command -v code-insiders)" ]; then
- exec code-insiders "$@"
-else
- echo "code or code-insiders is not installed" >&2
- exit 127
-fi
-EOF
-chmod +x /usr/local/bin/code
-
-# systemctl shim - tells people to use 'service' if systemd is not running
-cat << 'EOF' > /usr/local/bin/systemctl
-#!/bin/sh
-set -e
-if [ -d "/run/systemd/system" ]; then
- exec /bin/systemctl "$@"
-else
- echo '\n"systemd" is not running in this container due to its overhead.\nUse the "service" command to start services instead. e.g.: \n\nservice --status-all'
-fi
-EOF
-chmod +x /usr/local/bin/systemctl
-
-# Codespaces bash and OMZ themes - partly inspired by https://github.com/ohmyzsh/ohmyzsh/blob/master/themes/robbyrussell.zsh-theme
-codespaces_bash="$(cat \
-<<'EOF'
-
-# Codespaces bash prompt theme
-__bash_prompt() {
- local userpart='`export XIT=$? \
- && [ ! -z "${GITHUB_USER}" ] && echo -n "\[\033[0;32m\]@${GITHUB_USER} " || echo -n "\[\033[0;32m\]\u " \
- && [ "$XIT" -ne "0" ] && echo -n "\[\033[1;31m\]➜" || echo -n "\[\033[0m\]➜"`'
- local gitbranch='`\
- if [ "$(git config --get codespaces-theme.hide-status 2>/dev/null)" != 1 ]; then \
- export BRANCH=$(git symbolic-ref --short HEAD 2>/dev/null || git rev-parse --short HEAD 2>/dev/null); \
- if [ "${BRANCH}" != "" ]; then \
- echo -n "\[\033[0;36m\](\[\033[1;31m\]${BRANCH}" \
- && if git ls-files --error-unmatch -m --directory --no-empty-directory -o --exclude-standard ":/*" > /dev/null 2>&1; then \
- echo -n " \[\033[1;33m\]✗"; \
- fi \
- && echo -n "\[\033[0;36m\]) "; \
- fi; \
- fi`'
- local lightblue='\[\033[1;34m\]'
- local removecolor='\[\033[0m\]'
- PS1="${userpart} ${lightblue}\w ${gitbranch}${removecolor}\$ "
- unset -f __bash_prompt
-}
-__bash_prompt
-
-EOF
-)"
-
-codespaces_zsh="$(cat \
-<<'EOF'
-# Codespaces zsh prompt theme
-__zsh_prompt() {
- local prompt_username
- if [ ! -z "${GITHUB_USER}" ]; then
- prompt_username="@${GITHUB_USER}"
- else
- prompt_username="%n"
- fi
- PROMPT="%{$fg[green]%}${prompt_username} %(?:%{$reset_color%}➜ :%{$fg_bold[red]%}➜ )" # User/exit code arrow
- PROMPT+='%{$fg_bold[blue]%}%(5~|%-1~/…/%3~|%4~)%{$reset_color%} ' # cwd
- PROMPT+='$([ "$(git config --get codespaces-theme.hide-status 2>/dev/null)" != 1 ] && git_prompt_info)' # Git status
- PROMPT+='%{$fg[white]%}$ %{$reset_color%}'
- unset -f __zsh_prompt
-}
-ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg_bold[cyan]%}(%{$fg_bold[red]%}"
-ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%} "
-ZSH_THEME_GIT_PROMPT_DIRTY=" %{$fg_bold[yellow]%}✗%{$fg_bold[cyan]%})"
-ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg_bold[cyan]%})"
-__zsh_prompt
-
-EOF
-)"
-
-# Add RC snippet and custom bash prompt
-if [ "${RC_SNIPPET_ALREADY_ADDED}" != "true" ]; then
- echo "${rc_snippet}" >> /etc/bash.bashrc
- echo "${codespaces_bash}" >> "${user_rc_path}/.bashrc"
- echo 'export PROMPT_DIRTRIM=4' >> "${user_rc_path}/.bashrc"
- if [ "${USERNAME}" != "root" ]; then
- echo "${codespaces_bash}" >> "/root/.bashrc"
- echo 'export PROMPT_DIRTRIM=4' >> "/root/.bashrc"
- fi
- chown ${USERNAME}:${group_name} "${user_rc_path}/.bashrc"
- RC_SNIPPET_ALREADY_ADDED="true"
-fi
-
-# Optionally install and configure zsh and Oh My Zsh!
-if [ "${INSTALL_ZSH}" = "true" ]; then
- if ! type zsh > /dev/null 2>&1; then
- apt_get_update_if_needed
- apt-get install -y zsh
- fi
- if [ "${ZSH_ALREADY_INSTALLED}" != "true" ]; then
- echo "${rc_snippet}" >> /etc/zsh/zshrc
- ZSH_ALREADY_INSTALLED="true"
- fi
-
- # Adapted, simplified inline Oh My Zsh! install steps that adds, defaults to a codespaces theme.
- # See https://github.com/ohmyzsh/ohmyzsh/blob/master/tools/install.sh for official script.
- oh_my_install_dir="${user_rc_path}/.oh-my-zsh"
- if [ ! -d "${oh_my_install_dir}" ] && [ "${INSTALL_OH_MYS}" = "true" ]; then
- template_path="${oh_my_install_dir}/templates/zshrc.zsh-template"
- user_rc_file="${user_rc_path}/.zshrc"
- umask g-w,o-w
- mkdir -p ${oh_my_install_dir}
- git clone --depth=1 \
- -c core.eol=lf \
- -c core.autocrlf=false \
- -c fsck.zeroPaddedFilemode=ignore \
- -c fetch.fsck.zeroPaddedFilemode=ignore \
- -c receive.fsck.zeroPaddedFilemode=ignore \
- "${GITHUB_PROXY}https://github.com/ohmyzsh/ohmyzsh" "${oh_my_install_dir}" 2>&1
- echo -e "$(cat "${template_path}")\nDISABLE_AUTO_UPDATE=true\nDISABLE_UPDATE_PROMPT=true" > ${user_rc_file}
- sed -i -e 's/ZSH_THEME=.*/ZSH_THEME="codespaces"/g' ${user_rc_file}
-
- mkdir -p ${oh_my_install_dir}/custom/themes
- echo "${codespaces_zsh}" > "${oh_my_install_dir}/custom/themes/codespaces.zsh-theme"
- # Shrink git while still enabling updates
- cd "${oh_my_install_dir}"
- git repack -a -d -f --depth=1 --window=1
- # Copy to non-root user if one is specified
- if [ "${USERNAME}" != "root" ]; then
- cp -rf "${user_rc_file}" "${oh_my_install_dir}" /root
- chown -R ${USERNAME}:${group_name} "${user_rc_path}"
- fi
- fi
-fi
-
-# Persist image metadata info, script if meta.env found in same directory
-meta_info_script="$(cat << 'EOF'
-#!/bin/sh
-. /usr/local/etc/vscode-dev-containers/meta.env
-
-# Minimal output
-if [ "$1" = "version" ] || [ "$1" = "image-version" ]; then
- echo "${VERSION}"
- exit 0
-elif [ "$1" = "release" ]; then
- echo "${GIT_REPOSITORY_RELEASE}"
- exit 0
-elif [ "$1" = "content" ] || [ "$1" = "content-url" ] || [ "$1" = "contents" ] || [ "$1" = "contents-url" ]; then
- echo "${CONTENTS_URL}"
- exit 0
-fi
-
-#Full output
-echo
-echo "Development container image information"
-echo
-if [ ! -z "${VERSION}" ]; then echo "- Image version: ${VERSION}"; fi
-if [ ! -z "${DEFINITION_ID}" ]; then echo "- Definition ID: ${DEFINITION_ID}"; fi
-if [ ! -z "${VARIANT}" ]; then echo "- Variant: ${VARIANT}"; fi
-if [ ! -z "${GIT_REPOSITORY}" ]; then echo "- Source code repository: ${GIT_REPOSITORY}"; fi
-if [ ! -z "${GIT_REPOSITORY_RELEASE}" ]; then echo "- Source code release/branch: ${GIT_REPOSITORY_RELEASE}"; fi
-if [ ! -z "${BUILD_TIMESTAMP}" ]; then echo "- Timestamp: ${BUILD_TIMESTAMP}"; fi
-if [ ! -z "${CONTENTS_URL}" ]; then echo && echo "More info: ${CONTENTS_URL}"; fi
-echo
-EOF
-)"
-if [ -f "${SCRIPT_DIR}/meta.env" ]; then
- mkdir -p /usr/local/etc/vscode-dev-containers/
- cp -f "${SCRIPT_DIR}/meta.env" /usr/local/etc/vscode-dev-containers/meta.env
- echo "${meta_info_script}" > /usr/local/bin/devcontainer-info
- chmod +x /usr/local/bin/devcontainer-info
-fi
-
-# Write marker file
-mkdir -p "$(dirname "${MARKER_FILE}")"
-echo -e "\
- PACKAGES_ALREADY_INSTALLED=${PACKAGES_ALREADY_INSTALLED}\n\
- LOCALE_ALREADY_SET=${LOCALE_ALREADY_SET}\n\
- EXISTING_NON_ROOT_USER=${EXISTING_NON_ROOT_USER}\n\
- RC_SNIPPET_ALREADY_ADDED=${RC_SNIPPET_ALREADY_ADDED}\n\
- ZSH_ALREADY_INSTALLED=${ZSH_ALREADY_INSTALLED}" > "${MARKER_FILE}"
-
-echo "Done!"
\ No newline at end of file
diff --git a/docker/library-scripts/docker-in-docker-debian.sh b/docker/library-scripts/docker-in-docker-debian.sh
deleted file mode 100644
index 0f8b9a10d..000000000
--- a/docker/library-scripts/docker-in-docker-debian.sh
+++ /dev/null
@@ -1,292 +0,0 @@
-#!/usr/bin/env bash
-
-# Copyright 2021 The Dapr Authors
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# http://www.apache.org/licenses/LICENSE-2.0
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-#
-# Initializes the devcontainer tasks each time the container starts.
-# Users can edit this copy under /usr/local/share in the container to
-# customize this as needed for their custom localhost bindings.
-
-# Source: https://github.com/microsoft/vscode-dev-containers/blob/v0.224.3/script-library/docker-in-docker-debian.sh
-
-#-------------------------------------------------------------------------------------------------------------
-# Copyright (c) Microsoft Corporation. All rights reserved.
-# Licensed under the MIT License. See https://go.microsoft.com/fwlink/?linkid=2090316 for license information.
-#-------------------------------------------------------------------------------------------------------------
-#
-# Docs: https://github.com/microsoft/vscode-dev-containers/blob/main/script-library/docs/docker-in-docker.md
-# Maintainer: The VS Code and Codespaces Teams
-#
-# Syntax: ./docker-in-docker-debian.sh [enable non-root docker access flag] [non-root user] [use moby] [Engine/CLI Version]
-
-ENABLE_NONROOT_DOCKER=${1:-"true"}
-USERNAME=${2:-"automatic"}
-USE_MOBY=${3:-"true"}
-DOCKER_VERSION=${4:-"latest"} # The Docker/Moby Engine + CLI should match in version
-MICROSOFT_GPG_KEYS_URI="https://packages.microsoft.com/keys/microsoft.asc"
-
-set -e
-
-if [ "$(id -u)" -ne 0 ]; then
- echo -e 'Script must be run as root. Use sudo, su, or add "USER root" to your Dockerfile before running this script.'
- exit 1
-fi
-
-# Determine the appropriate non-root user
-if [ "${USERNAME}" = "auto" ] || [ "${USERNAME}" = "automatic" ]; then
- USERNAME=""
- POSSIBLE_USERS=("vscode" "node" "codespace" "$(awk -v val=1000 -F ":" '$3==val{print $1}' /etc/passwd)")
- for CURRENT_USER in ${POSSIBLE_USERS[@]}; do
- if id -u ${CURRENT_USER} > /dev/null 2>&1; then
- USERNAME=${CURRENT_USER}
- break
- fi
- done
- if [ "${USERNAME}" = "" ]; then
- USERNAME=root
- fi
-elif [ "${USERNAME}" = "none" ] || ! id -u ${USERNAME} > /dev/null 2>&1; then
- USERNAME=root
-fi
-
-# Get central common setting
-get_common_setting() {
- if [ "${common_settings_file_loaded}" != "true" ]; then
- curl -sfL "https://aka.ms/vscode-dev-containers/script-library/settings.env" 2>/dev/null -o /tmp/vsdc-settings.env || echo "Could not download settings file. Skipping."
- common_settings_file_loaded=true
- fi
- if [ -f "/tmp/vsdc-settings.env" ]; then
- local multi_line=""
- if [ "$2" = "true" ]; then multi_line="-z"; fi
- local result="$(grep ${multi_line} -oP "$1=\"?\K[^\"]+" /tmp/vsdc-settings.env | tr -d '\0')"
- if [ ! -z "${result}" ]; then declare -g $1="${result}"; fi
- fi
- echo "$1=${!1}"
-}
-
-# Function to run apt-get if needed
-apt_get_update_if_needed()
-{
- if [ ! -d "/var/lib/apt/lists" ] || [ "$(ls /var/lib/apt/lists/ | wc -l)" = "0" ]; then
- echo "Running apt-get update..."
- apt-get update
- else
- echo "Skipping apt-get update."
- fi
-}
-
-# Checks if packages are installed and installs them if not
-check_packages() {
- if ! dpkg -s "$@" > /dev/null 2>&1; then
- apt_get_update_if_needed
- apt-get -y install --no-install-recommends "$@"
- fi
-}
-
-# Ensure apt is in non-interactive to avoid prompts
-export DEBIAN_FRONTEND=noninteractive
-
-# Install dependencies
-check_packages apt-transport-https curl ca-certificates pigz iptables gnupg2 dirmngr
-if ! type git > /dev/null 2>&1; then
- apt_get_update_if_needed
- apt-get -y install git
-fi
-
-# Swap to legacy iptables for compatibility
-if type iptables-legacy > /dev/null 2>&1; then
- update-alternatives --set iptables /usr/sbin/iptables-legacy
- update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
-fi
-
-# Source /etc/os-release to get OS info
-. /etc/os-release
-# Fetch host/container arch.
-architecture="$(dpkg --print-architecture)"
-
-# Set up the necessary apt repos (either Microsoft's or Docker's)
-if [ "${USE_MOBY}" = "true" ]; then
-
- # Name of open source engine/cli
- engine_package_name="moby-engine"
- cli_package_name="moby-cli"
-
- # Import key safely and import Microsoft apt repo
- get_common_setting MICROSOFT_GPG_KEYS_URI
- curl -sSL ${MICROSOFT_GPG_KEYS_URI} | gpg --dearmor > /usr/share/keyrings/microsoft-archive-keyring.gpg
- echo "deb [arch=${architecture} signed-by=/usr/share/keyrings/microsoft-archive-keyring.gpg] https://packages.microsoft.com/repos/microsoft-${ID}-${VERSION_CODENAME}-prod ${VERSION_CODENAME} main" > /etc/apt/sources.list.d/microsoft.list
-else
- # Name of licensed engine/cli
- engine_package_name="docker-ce"
- cli_package_name="docker-ce-cli"
-
- # Import key safely and import Docker apt repo
- curl -fsSL https://download.docker.com/linux/${ID}/gpg | gpg --dearmor > /usr/share/keyrings/docker-archive-keyring.gpg
- echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/${ID} ${VERSION_CODENAME} stable" > /etc/apt/sources.list.d/docker.list
-fi
-
-# Refresh apt lists
-apt-get update
-
-# Soft version matching
-if [ "${DOCKER_VERSION}" = "latest" ] || [ "${DOCKER_VERSION}" = "lts" ] || [ "${DOCKER_VERSION}" = "stable" ]; then
- # Empty, meaning grab whatever "latest" is in apt repo
- engine_version_suffix=""
- cli_version_suffix=""
-else
- # Fetch a valid version from the apt-cache (eg: the Microsoft repo appends +azure, breakfix, etc...)
- docker_version_dot_escaped="${DOCKER_VERSION//./\\.}"
- docker_version_dot_plus_escaped="${docker_version_dot_escaped//+/\\+}"
- # Regex needs to handle debian package version number format: https://www.systutorials.com/docs/linux/man/5-deb-version/
- docker_version_regex="^(.+:)?${docker_version_dot_plus_escaped}([\\.\\+ ~:-]|$)"
- set +e # Don't exit if finding version fails - will handle gracefully
- cli_version_suffix="=$(apt-cache madison ${cli_package_name} | awk -F"|" '{print $2}' | sed -e 's/^[ \t]*//' | grep -E -m 1 "${docker_version_regex}")"
- engine_version_suffix="=$(apt-cache madison ${engine_package_name} | awk -F"|" '{print $2}' | sed -e 's/^[ \t]*//' | grep -E -m 1 "${docker_version_regex}")"
- set -e
- if [ -z "${engine_version_suffix}" ] || [ "${engine_version_suffix}" = "=" ] || [ -z "${cli_version_suffix}" ] || [ "${cli_version_suffix}" = "=" ] ; then
- echo "(!) No full or partial Docker / Moby version match found for \"${DOCKER_VERSION}\" on OS ${ID} ${VERSION_CODENAME} (${architecture}). Available versions:"
- apt-cache madison ${cli_package_name} | awk -F"|" '{print $2}' | grep -oP '^(.+:)?\K.+'
- exit 1
- fi
- echo "engine_version_suffix ${engine_version_suffix}"
- echo "cli_version_suffix ${cli_version_suffix}"
-fi
-
-# Install Docker / Moby CLI if not already installed
-if type docker > /dev/null 2>&1 && type dockerd > /dev/null 2>&1; then
- echo "Docker / Moby CLI and Engine already installed."
-else
- if [ "${USE_MOBY}" = "true" ]; then
- apt-get -y install --no-install-recommends moby-cli${cli_version_suffix} moby-buildx moby-engine${engine_version_suffix}
- apt-get -y install --no-install-recommends moby-compose || echo "(*) Package moby-compose (Docker Compose v2) not available for OS ${ID} ${VERSION_CODENAME} (${architecture}). Skipping."
- else
- apt-get -y install --no-install-recommends docker-ce-cli${cli_version_suffix} docker-ce${engine_version_suffix}
- fi
-fi
-
-echo "Finished installing docker / moby!"
-
-### Diff start
-# Install Docker Compose if not already installed
-if type docker-compose > /dev/null 2>&1; then
- echo "Docker Compose already installed."
-else
- target_compose_arch="$(uname -m)"
- case $target_compose_arch in
- x86_64) target_compose_arch="x86_64";;
- aarch64 | armv8*) target_compose_arch="aarch64";;
- *) echo "(!) Architecture $target_compose_arch unsupported"; exit 1 ;;
- esac
- # Get the last version from the GitHub APIs
- docker_dash_compose_version=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | jq -r ".tag_name")
- echo "(*) Installing docker-compose ${docker_dash_compose_version}..."
- curl -fsSL "${GITHUB_PROXY}https://github.com/docker/compose/releases/download/${docker_dash_compose_version}/docker-compose-linux-${target_compose_arch}" -o /usr/local/bin/docker-compose
- chmod +x /usr/local/bin/docker-compose
-fi
-### Diff end
-
-# If init file already exists, exit
-if [ -f "/usr/local/share/docker-init.sh" ]; then
- echo "/usr/local/share/docker-init.sh already exists, so exiting."
- exit 0
-fi
-echo "docker-init doesnt exist, adding..."
-
-# Add user to the docker group
-if [ "${ENABLE_NONROOT_DOCKER}" = "true" ]; then
- if ! getent group docker > /dev/null 2>&1; then
- groupadd docker
- fi
-
- usermod -aG docker ${USERNAME}
-fi
-
-tee /usr/local/share/docker-init.sh > /dev/null \
-<< 'EOF'
-#!/bin/sh
-#-------------------------------------------------------------------------------------------------------------
-# Copyright (c) Microsoft Corporation. All rights reserved.
-# Licensed under the MIT License. See https://go.microsoft.com/fwlink/?linkid=2090316 for license information.
-#-------------------------------------------------------------------------------------------------------------
-
-set -e
-
-dockerd_start="$(cat << 'INNEREOF'
- # explicitly remove dockerd and containerd PID file to ensure that it can start properly if it was stopped uncleanly
- # ie: docker kill
- find /run /var/run -iname 'docker*.pid' -delete || :
- find /run /var/run -iname 'container*.pid' -delete || :
-
- ## Dind wrapper script from docker team, adapted to a function
- # Maintained: https://github.com/moby/moby/blob/master/hack/dind
-
- export container=docker
-
- if [ -d /sys/kernel/security ] && ! mountpoint -q /sys/kernel/security; then
- mount -t securityfs none /sys/kernel/security || {
- echo >&2 'Could not mount /sys/kernel/security.'
- echo >&2 'AppArmor detection and --privileged mode might break.'
- }
- fi
-
- # Mount /tmp (conditionally)
- if ! mountpoint -q /tmp; then
- mount -t tmpfs none /tmp
- fi
-
- # cgroup v2: enable nesting
- if [ -f /sys/fs/cgroup/cgroup.controllers ]; then
- # move the processes from the root group to the /init group,
- # otherwise writing subtree_control fails with EBUSY.
- # An error during moving non-existent process (i.e., "cat") is ignored.
- mkdir -p /sys/fs/cgroup/init
- xargs -rn1 < /sys/fs/cgroup/cgroup.procs > /sys/fs/cgroup/init/cgroup.procs || :
- # enable controllers
- sed -e 's/ / +/g' -e 's/^/+/' < /sys/fs/cgroup/cgroup.controllers \
- > /sys/fs/cgroup/cgroup.subtree_control
- fi
- ## Dind wrapper over.
-
- # Handle DNS
- set +e
- cat /etc/resolv.conf | grep -i 'internal.cloudapp.net'
- if [ $? -eq 0 ]
- then
- echo "Setting dockerd Azure DNS."
- CUSTOMDNS="--dns 168.63.129.16"
- else
- echo "Not setting dockerd DNS manually."
- CUSTOMDNS=""
- fi
- set -e
-
- # Start docker/moby engine
- ( dockerd $CUSTOMDNS > /tmp/dockerd.log 2>&1 ) &
-INNEREOF
-)"
-
-# Start using sudo if not invoked as root
-if [ "$(id -u)" -ne 0 ]; then
- sudo /bin/sh -c "${dockerd_start}"
-else
- eval "${dockerd_start}"
-fi
-
-set +e
-
-# Execute whatever commands were passed in (if any). This allows us
-# to set this script to ENTRYPOINT while still executing the default CMD.
-exec "$@"
-EOF
-
-chmod +x /usr/local/share/docker-init.sh
-chown ${USERNAME}:root /usr/local/share/docker-init.sh
\ No newline at end of file
diff --git a/docker/library-scripts/go-debian.sh b/docker/library-scripts/go-debian.sh
deleted file mode 100644
index f109b289f..000000000
--- a/docker/library-scripts/go-debian.sh
+++ /dev/null
@@ -1,254 +0,0 @@
-#!/usr/bin/env bash
-#-------------------------------------------------------------------------------------------------------------
-# Copyright (c) Microsoft Corporation. All rights reserved.
-# Licensed under the MIT License. See https://go.microsoft.com/fwlink/?linkid=2090316 for license information.
-#-------------------------------------------------------------------------------------------------------------
-#
-# Docs: https://github.com/microsoft/vscode-dev-containers/blob/main/script-library/docs/go.md
-# Maintainer: The VS Code and Codespaces Teams
-#
-# Syntax: ./go-debian.sh [Go version] [GOROOT] [GOPATH] [non-root user] [Add GOPATH, GOROOT to rc files flag] [Install tools flag]
-
-TARGET_GO_VERSION=${1:-"latest"}
-TARGET_GOROOT=${2:-"/usr/local/go"}
-TARGET_GOPATH=${3:-"/go"}
-USERNAME=${4:-"automatic"}
-UPDATE_RC=${5:-"true"}
-INSTALL_GO_TOOLS=${6:-"true"}
-
-# https://www.google.com/linuxrepositories/
-GO_GPG_KEY_URI="https://dl.google.com/linux/linux_signing_key.pub"
-
-set -e
-
-if [ "$(id -u)" -ne 0 ]; then
- echo -e 'Script must be run as root. Use sudo, su, or add "USER root" to your Dockerfile before running this script.'
- exit 1
-fi
-
-# Ensure that login shells get the correct path if the user updated the PATH using ENV.
-rm -f /etc/profile.d/00-restore-env.sh
-echo "export PATH=${PATH//$(sh -lc 'echo $PATH')/\$PATH}" > /etc/profile.d/00-restore-env.sh
-chmod +x /etc/profile.d/00-restore-env.sh
-
-# Determine the appropriate non-root user
-if [ "${USERNAME}" = "auto" ] || [ "${USERNAME}" = "automatic" ]; then
- USERNAME=""
- POSSIBLE_USERS=("vscode" "node" "codespace" "$(awk -v val=1000 -F ":" '$3==val{print $1}' /etc/passwd)")
- for CURRENT_USER in ${POSSIBLE_USERS[@]}; do
- if id -u ${CURRENT_USER} > /dev/null 2>&1; then
- USERNAME=${CURRENT_USER}
- break
- fi
- done
- if [ "${USERNAME}" = "" ]; then
- USERNAME=root
- fi
-elif [ "${USERNAME}" = "none" ] || ! id -u ${USERNAME} > /dev/null 2>&1; then
- USERNAME=root
-fi
-
-updaterc() {
- if [ "${UPDATE_RC}" = "true" ]; then
- echo "Updating /etc/bash.bashrc and /etc/zsh/zshrc..."
- if [[ "$(cat /etc/bash.bashrc)" != *"$1"* ]]; then
- echo -e "$1" >> /etc/bash.bashrc
- fi
- if [ -f "/etc/zsh/zshrc" ] && [[ "$(cat /etc/zsh/zshrc)" != *"$1"* ]]; then
- echo -e "$1" >> /etc/zsh/zshrc
- fi
- fi
-}
-# Figure out correct version of a three part version number is not passed
-find_version_from_git_tags() {
- local variable_name=$1
- local requested_version=${!variable_name}
- if [ "${requested_version}" = "none" ]; then return; fi
- local repository=$2
- local prefix=${3:-"tags/v"}
- local separator=${4:-"."}
- local last_part_optional=${5:-"false"}
- if [ "$(echo "${requested_version}" | grep -o "." | wc -l)" != "2" ]; then
- local escaped_separator=${separator//./\\.}
- local last_part
- if [ "${last_part_optional}" = "true" ]; then
- last_part="(${escaped_separator}[0-9]+)?"
- else
- last_part="${escaped_separator}[0-9]+"
- fi
- local regex="${prefix}\\K[0-9]+${escaped_separator}[0-9]+${last_part}$"
- local version_list="$(git ls-remote --tags ${repository} | grep -oP "${regex}" | tr -d ' ' | tr "${separator}" "." | sort -rV)"
- if [ "${requested_version}" = "latest" ] || [ "${requested_version}" = "current" ] || [ "${requested_version}" = "lts" ]; then
- declare -g ${variable_name}="$(echo "${version_list}" | head -n 1)"
- else
- set +e
- declare -g ${variable_name}="$(echo "${version_list}" | grep -E -m 1 "^${requested_version//./\\.}([\\.\\s]|$)")"
- set -e
- fi
- fi
- if [ -z "${!variable_name}" ] || ! echo "${version_list}" | grep "^${!variable_name//./\\.}$" > /dev/null 2>&1; then
- echo -e "Invalid ${variable_name} value: ${requested_version}\nValid values:\n${version_list}" >&2
- exit 1
- fi
- echo "${variable_name}=${!variable_name}"
-}
-
-# Get central common setting
-get_common_setting() {
- if [ "${common_settings_file_loaded}" != "true" ]; then
- curl -sfL "https://aka.ms/vscode-dev-containers/script-library/settings.env" 2>/dev/null -o /tmp/vsdc-settings.env || echo "Could not download settings file. Skipping."
- common_settings_file_loaded=true
- fi
- if [ -f "/tmp/vsdc-settings.env" ]; then
- local multi_line=""
- if [ "$2" = "true" ]; then multi_line="-z"; fi
- local result="$(grep ${multi_line} -oP "$1=\"?\K[^\"]+" /tmp/vsdc-settings.env | tr -d '\0')"
- if [ ! -z "${result}" ]; then declare -g $1="${result}"; fi
- fi
- echo "$1=${!1}"
-}
-
-# Function to run apt-get if needed
-apt_get_update_if_needed()
-{
- if [ ! -d "/var/lib/apt/lists" ] || [ "$(ls /var/lib/apt/lists/ | wc -l)" = "0" ]; then
- echo "Running apt-get update..."
- apt-get update
- else
- echo "Skipping apt-get update."
- fi
-}
-
-# Checks if packages are installed and installs them if not
-check_packages() {
- if ! dpkg -s "$@" > /dev/null 2>&1; then
- apt_get_update_if_needed
- apt-get -y install --no-install-recommends "$@"
- fi
-}
-
-export DEBIAN_FRONTEND=noninteractive
-
-# Install curl, tar, git, other dependencies if missing
-check_packages curl ca-certificates gnupg2 tar g++ gcc libc6-dev make pkg-config
-if ! type git > /dev/null 2>&1; then
- apt_get_update_if_needed
- apt-get -y install --no-install-recommends git
-fi
-
-# Get closest match for version number specified
-find_version_from_git_tags TARGET_GO_VERSION "https://go.googlesource.com/go" "tags/go" "." "true"
-
-architecture="$(uname -m)"
-case $architecture in
- x86_64) architecture="amd64";;
- aarch64 | armv8*) architecture="arm64";;
- aarch32 | armv7* | armvhf*) architecture="armv6l";;
- i?86) architecture="386";;
- *) echo "(!) Architecture $architecture unsupported"; exit 1 ;;
-esac
-
-# Install Go
-umask 0002
-if ! cat /etc/group | grep -e "^golang:" > /dev/null 2>&1; then
- groupadd -r golang
-fi
-usermod -a -G golang "${USERNAME}"
-mkdir -p "${TARGET_GOROOT}" "${TARGET_GOPATH}"
-if [ "${TARGET_GO_VERSION}" != "none" ] && ! type go > /dev/null 2>&1; then
- # Use a temporary location for gpg keys to avoid polluting image
- export GNUPGHOME="/tmp/tmp-gnupg"
- mkdir -p ${GNUPGHOME}
- chmod 700 ${GNUPGHOME}
- get_common_setting GO_GPG_KEY_URI
- curl -sSL -o /tmp/tmp-gnupg/golang_key "${GO_GPG_KEY_URI}"
- gpg -q --import /tmp/tmp-gnupg/golang_key
- echo "Downloading Go ${TARGET_GO_VERSION}..."
- set +e
- curl -fsSL -o /tmp/go.tar.gz "https://golang.org/dl/go${TARGET_GO_VERSION}.linux-${architecture}.tar.gz"
- exit_code=$?
- set -e
- if [ "$exit_code" != "0" ]; then
- echo "(!) Download failed."
- # Try one break fix version number less if we get a failure. Use "set +e" since "set -e" can cause failures in valid scenarios.
- set +e
- major="$(echo "${TARGET_GO_VERSION}" | grep -oE '^[0-9]+' || echo '')"
- minor="$(echo "${TARGET_GO_VERSION}" | grep -oP '^[0-9]+\.\K[0-9]+' || echo '')"
- breakfix="$(echo "${TARGET_GO_VERSION}" | grep -oP '^[0-9]+\.[0-9]+\.\K[0-9]+' 2>/dev/null || echo '')"
- # Handle Go's odd version pattern where "0" releases omit the last part
- if [ "${breakfix}" = "" ] || [ "${breakfix}" = "0" ]; then
- ((minor=minor-1))
- TARGET_GO_VERSION="${major}.${minor}"
- # Look for latest version from previous minor release
- find_version_from_git_tags TARGET_GO_VERSION "https://go.googlesource.com/go" "tags/go" "." "true"
- else
- ((breakfix=breakfix-1))
- if [ "${breakfix}" = "0" ]; then
- TARGET_GO_VERSION="${major}.${minor}"
- else
- TARGET_GO_VERSION="${major}.${minor}.${breakfix}"
- fi
- fi
- set -e
- echo "Trying ${TARGET_GO_VERSION}..."
- curl -fsSL -o /tmp/go.tar.gz "https://golang.org/dl/go${TARGET_GO_VERSION}.linux-${architecture}.tar.gz"
- fi
- curl -fsSL -o /tmp/go.tar.gz.asc "https://golang.org/dl/go${TARGET_GO_VERSION}.linux-${architecture}.tar.gz.asc"
- gpg --verify /tmp/go.tar.gz.asc /tmp/go.tar.gz
- echo "Extracting Go ${TARGET_GO_VERSION}..."
- tar -xzf /tmp/go.tar.gz -C "${TARGET_GOROOT}" --strip-components=1
- rm -rf /tmp/go.tar.gz /tmp/go.tar.gz.asc /tmp/tmp-gnupg
-else
- echo "Go already installed. Skipping."
-fi
-
-# Install Go tools that are isImportant && !replacedByGopls based on
-# https://github.com/golang/vscode-go/blob/v0.31.1/src/goToolsInformation.ts
-GO_TOOLS="\
- golang.org/x/tools/gopls@latest \
- honnef.co/go/tools/cmd/staticcheck@latest \
- golang.org/x/lint/golint@latest \
- github.com/mgechev/revive@latest \
- github.com/uudashr/gopkgs/v2/cmd/gopkgs@latest \
- github.com/ramya-rao-a/go-outline@latest \
- github.com/go-delve/delve/cmd/dlv@latest \
- github.com/golangci/golangci-lint/cmd/golangci-lint@latest"
-if [ "${INSTALL_GO_TOOLS}" = "true" ]; then
- echo "Installing common Go tools..."
- export PATH=${TARGET_GOROOT}/bin:${PATH}
- mkdir -p /tmp/gotools /usr/local/etc/vscode-dev-containers ${TARGET_GOPATH}/bin
- cd /tmp/gotools
- export GOPATH=/tmp/gotools
- export GOCACHE=/tmp/gotools/cache
-
- # Use go get for versions of go under 1.16
- go_install_command=install
- if [[ "1.16" > "$(go version | grep -oP 'go\K[0-9]+\.[0-9]+(\.[0-9]+)?')" ]]; then
- export GO111MODULE=on
- go_install_command=get
- echo "Go version < 1.16, using go get."
- fi
-
- (echo "${GO_TOOLS}" | xargs -n 1 go ${go_install_command} -v )2>&1 | tee -a /usr/local/etc/vscode-dev-containers/go.log
-
- # Move Go tools into path and clean up
- mv /tmp/gotools/bin/* ${TARGET_GOPATH}/bin/
-
- rm -rf /tmp/gotools
-fi
-
-# Add GOPATH variable and bin directory into PATH in bashrc/zshrc files (unless disabled)
-updaterc "$(cat << EOF
-export GOPATH="${TARGET_GOPATH}"
-if [[ "\${PATH}" != *"\${GOPATH}/bin"* ]]; then export PATH="\${PATH}:\${GOPATH}/bin"; fi
-export GOROOT="${TARGET_GOROOT}"
-if [[ "\${PATH}" != *"\${GOROOT}/bin"* ]]; then export PATH="\${PATH}:\${GOROOT}/bin"; fi
-EOF
-)"
-
-chown -R :golang "${TARGET_GOROOT}" "${TARGET_GOPATH}"
-chmod -R g+r+w "${TARGET_GOROOT}" "${TARGET_GOPATH}"
-find "${TARGET_GOROOT}" -type d | xargs -n 1 chmod g+s
-find "${TARGET_GOPATH}" -type d | xargs -n 1 chmod g+s
-
-echo "Done!"
diff --git a/docker/library-scripts/kubectl-helm-debian.sh b/docker/library-scripts/kubectl-helm-debian.sh
deleted file mode 100644
index 0c1bd32a5..000000000
--- a/docker/library-scripts/kubectl-helm-debian.sh
+++ /dev/null
@@ -1,256 +0,0 @@
-docker/#!/usr/bin/env bash
-
-# Copyright 2021 The Dapr Authors
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# http://www.apache.org/licenses/LICENSE-2.0
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-#
-# Initializes the devcontainer tasks each time the container starts.
-# Users can edit this copy under /usr/local/share in the container to
-# customize this as needed for their custom localhost bindings.
-
-# Source: https://github.com/microsoft/vscode-dev-containers/blob/v0.224.3/script-library/kubectl-helm-debian.sh
-
-#-------------------------------------------------------------------------------------------------------------
-# Copyright (c) Microsoft Corporation. All rights reserved.
-# Licensed under the MIT License. See https://go.microsoft.com/fwlink/?linkid=2090316 for license information.
-#-------------------------------------------------------------------------------------------------------------
-#
-# Docs: https://github.com/microsoft/vscode-dev-containers/blob/main/script-library/docs/kubectl-helm.md
-# Maintainer: The VS Code and Codespaces Teams
-#
-# Syntax: ./kubectl-helm-debian.sh [kubectl version] [Helm version] [minikube version] [kubectl SHA256] [Helm SHA256] [minikube SHA256]
-
-set -e
-
-KUBECTL_VERSION="${1:-"latest"}"
-HELM_VERSION="${2:-"latest"}"
-MINIKUBE_VERSION="${3:-"none"}" # latest is also valid
-KUBECTL_SHA256="${4:-"automatic"}"
-HELM_SHA256="${5:-"automatic"}"
-MINIKUBE_SHA256="${6:-"automatic"}"
-USERNAME=${7:-"automatic"}
-
-HELM_GPG_KEYS_URI="https://raw.githubusercontent.com/helm/helm/main/KEYS"
-GPG_KEY_SERVERS="keyserver hkp://keyserver.ubuntu.com:80
-keyserver hkps://keys.openpgp.org
-keyserver hkp://keyserver.pgp.com"
-
-if [ "$(id -u)" -ne 0 ]; then
- echo -e 'Script must be run as root. Use sudo, su, or add "USER root" to your Dockerfile before running this script.'
- exit 1
-fi
-
-# Determine the appropriate non-root user
-if [ "${USERNAME}" = "auto" ] || [ "${USERNAME}" = "automatic" ]; then
- USERNAME=""
- POSSIBLE_USERS=("vscode" "node" "codespace" "$(awk -v val=1000 -F ":" '$3==val{print $1}' /etc/passwd)")
- for CURRENT_USER in ${POSSIBLE_USERS[@]}; do
- if id -u ${CURRENT_USER} > /dev/null 2>&1; then
- USERNAME=${CURRENT_USER}
- break
- fi
- done
- if [ "${USERNAME}" = "" ]; then
- USERNAME=root
- fi
-elif [ "${USERNAME}" = "none" ] || ! id -u ${USERNAME} > /dev/null 2>&1; then
- USERNAME=root
-fi
-
-# Get central common setting
-get_common_setting() {
- if [ "${common_settings_file_loaded}" != "true" ]; then
- curl -sfL "https://aka.ms/vscode-dev-containers/script-library/settings.env" 2>/dev/null -o /tmp/vsdc-settings.env || echo "Could not download settings file. Skipping."
- common_settings_file_loaded=true
- fi
- if [ -f "/tmp/vsdc-settings.env" ]; then
- local multi_line=""
- if [ "$2" = "true" ]; then multi_line="-z"; fi
- local result="$(grep ${multi_line} -oP "$1=\"?\K[^\"]+" /tmp/vsdc-settings.env | tr -d '\0')"
- if [ ! -z "${result}" ]; then declare -g $1="${result}"; fi
- fi
- echo "$1=${!1}"
-}
-
-# Figure out correct version of a three part version number is not passed
-find_version_from_git_tags() {
- local variable_name=$1
- local requested_version=${!variable_name}
- if [ "${requested_version}" = "none" ]; then return; fi
- local repository=$2
- local prefix=${3:-"tags/v"}
- local separator=${4:-"."}
- local last_part_optional=${5:-"false"}
- if [ "$(echo "${requested_version}" | grep -o "." | wc -l)" != "2" ]; then
- local escaped_separator=${separator//./\\.}
- local last_part
- if [ "${last_part_optional}" = "true" ]; then
- last_part="(${escaped_separator}[0-9]+)?"
- else
- last_part="${escaped_separator}[0-9]+"
- fi
- local regex="${prefix}\\K[0-9]+${escaped_separator}[0-9]+${last_part}$"
- local version_list="$(git ls-remote --tags ${repository} | grep -oP "${regex}" | tr -d ' ' | tr "${separator}" "." | sort -rV)"
- if [ "${requested_version}" = "latest" ] || [ "${requested_version}" = "current" ] || [ "${requested_version}" = "lts" ]; then
- declare -g ${variable_name}="$(echo "${version_list}" | head -n 1)"
- else
- set +e
- declare -g ${variable_name}="$(echo "${version_list}" | grep -E -m 1 "^${requested_version//./\\.}([\\.\\s]|$)")"
- set -e
- fi
- fi
- if [ -z "${!variable_name}" ] || ! echo "${version_list}" | grep "^${!variable_name//./\\.}$" > /dev/null 2>&1; then
- echo -e "Invalid ${variable_name} value: ${requested_version}\nValid values:\n${version_list}" >&2
- exit 1
- fi
- echo "${variable_name}=${!variable_name}"
-}
-
-# Function to run apt-get if needed
-apt_get_update_if_needed()
-{
- if [ ! -d "/var/lib/apt/lists" ] || [ "$(ls /var/lib/apt/lists/ | wc -l)" = "0" ]; then
- echo "Running apt-get update..."
- apt-get update
- else
- echo "Skipping apt-get update."
- fi
-}
-
-# Checks if packages are installed and installs them if not
-check_packages() {
- if ! dpkg -s "$@" > /dev/null 2>&1; then
- apt_get_update_if_needed
- apt-get -y install --no-install-recommends "$@"
- fi
-}
-
-# Ensure apt is in non-interactive to avoid prompts
-export DEBIAN_FRONTEND=noninteractive
-
-# Install dependencies
-check_packages curl ca-certificates coreutils gnupg2 dirmngr bash-completion
-if ! type git > /dev/null 2>&1; then
- apt_get_update_if_needed
- apt-get -y install --no-install-recommends git
-fi
-
-architecture="$(uname -m)"
-case $architecture in
- x86_64) architecture="amd64";;
- aarch64 | armv8*) architecture="arm64";;
- aarch32 | armv7* | armvhf*) architecture="arm";;
- i?86) architecture="386";;
- *) echo "(!) Architecture $architecture unsupported"; exit 1 ;;
-esac
-
-# Install the kubectl, verify checksum
-echo "Downloading kubectl..."
-if [ "${KUBECTL_VERSION}" = "latest" ] || [ "${KUBECTL_VERSION}" = "lts" ] || [ "${KUBECTL_VERSION}" = "current" ] || [ "${KUBECTL_VERSION}" = "stable" ]; then
- KUBECTL_VERSION="$(curl -sSL https://dl.k8s.io/release/stable.txt)"
-else
- find_version_from_git_tags KUBECTL_VERSION ${GITHUB_PROXY}https://github.com/kubernetes/kubernetes
-fi
-if [ "${KUBECTL_VERSION::1}" != 'v' ]; then
- KUBECTL_VERSION="v${KUBECTL_VERSION}"
-fi
-curl -sSL -o /usr/local/bin/kubectl "https://dl.k8s.io/release/${KUBECTL_VERSION}/bin/linux/${architecture}/kubectl"
-chmod 0755 /usr/local/bin/kubectl
-if [ "$KUBECTL_SHA256" = "automatic" ]; then
- KUBECTL_SHA256="$(curl -sSL "https://dl.k8s.io/${KUBECTL_VERSION}/bin/linux/${architecture}/kubectl.sha256")"
-fi
-([ "${KUBECTL_SHA256}" = "dev-mode" ] || (echo "${KUBECTL_SHA256} */usr/local/bin/kubectl" | sha256sum -c -))
-if ! type kubectl > /dev/null 2>&1; then
- echo '(!) kubectl installation failed!'
- exit 1
-fi
-
-# kubectl bash completion
-kubectl completion bash > /etc/bash_completion.d/kubectl
-
-# kubectl zsh completion
-mkdir -p "/home/${USERNAME}/.oh-my-zsh/completions"
-kubectl completion zsh > "/home/${USERNAME}/.oh-my-zsh/completions/_kubectl"
-chown -R "${USERNAME}" "/home/${USERNAME}/.oh-my-zsh"
-
-# Install Helm, verify signature and checksum
-echo "Downloading Helm..."
-find_version_from_git_tags HELM_VERSION "${GITHUB_PROXY}https://github.com/helm/helm"
-if [ "${HELM_VERSION::1}" != 'v' ]; then
- HELM_VERSION="v${HELM_VERSION}"
-fi
-mkdir -p /tmp/helm
-helm_filename="helm-${HELM_VERSION}-linux-${architecture}.tar.gz"
-tmp_helm_filename="/tmp/helm/${helm_filename}"
-curl -sSL "https://get.helm.sh/${helm_filename}" -o "${tmp_helm_filename}"
-curl -sSL "${GITHUB_PROXY}https://github.com/helm/helm/releases/download/${HELM_VERSION}/${helm_filename}.asc" -o "${tmp_helm_filename}.asc"
-export GNUPGHOME="/tmp/helm/gnupg"
-mkdir -p "${GNUPGHOME}"
-chmod 700 ${GNUPGHOME}
-get_common_setting HELM_GPG_KEYS_URI
-get_common_setting GPG_KEY_SERVERS true
-curl -sSL "${HELM_GPG_KEYS_URI}" -o /tmp/helm/KEYS
-echo -e "disable-ipv6\n${GPG_KEY_SERVERS}" > ${GNUPGHOME}/dirmngr.conf
-gpg -q --import "/tmp/helm/KEYS"
-if ! gpg --verify "${tmp_helm_filename}.asc" > ${GNUPGHOME}/verify.log 2>&1; then
- echo "Verification failed!"
- cat /tmp/helm/gnupg/verify.log
- exit 1
-fi
-if [ "${HELM_SHA256}" = "automatic" ]; then
- curl -sSL "https://get.helm.sh/${helm_filename}.sha256" -o "${tmp_helm_filename}.sha256"
- curl -sSL "${GITHUB_PROXY}https://github.com/helm/helm/releases/download/${HELM_VERSION}/${helm_filename}.sha256.asc" -o "${tmp_helm_filename}.sha256.asc"
- if ! gpg --verify "${tmp_helm_filename}.sha256.asc" > /tmp/helm/gnupg/verify.log 2>&1; then
- echo "Verification failed!"
- cat /tmp/helm/gnupg/verify.log
- exit 1
- fi
- HELM_SHA256="$(cat "${tmp_helm_filename}.sha256")"
-fi
-([ "${HELM_SHA256}" = "dev-mode" ] || (echo "${HELM_SHA256} *${tmp_helm_filename}" | sha256sum -c -))
-tar xf "${tmp_helm_filename}" -C /tmp/helm
-mv -f "/tmp/helm/linux-${architecture}/helm" /usr/local/bin/
-chmod 0755 /usr/local/bin/helm
-rm -rf /tmp/helm
-if ! type helm > /dev/null 2>&1; then
- echo '(!) Helm installation failed!'
- exit 1
-fi
-
-# Install Minikube, verify checksum
-if [ "${MINIKUBE_VERSION}" != "none" ]; then
- echo "Downloading minikube..."
- if [ "${MINIKUBE_VERSION}" = "latest" ] || [ "${MINIKUBE_VERSION}" = "lts" ] || [ "${MINIKUBE_VERSION}" = "current" ] || [ "${MINIKUBE_VERSION}" = "stable" ]; then
- MINIKUBE_VERSION="latest"
- else
- find_version_from_git_tags MINIKUBE_VERSION ${GITHUB_PROXY}https://github.com/kubernetes/minikube
- if [ "${MINIKUBE_VERSION::1}" != "v" ]; then
- MINIKUBE_VERSION="v${MINIKUBE_VERSION}"
- fi
- fi
- # latest is also valid in the download URLs
- curl -sSL -o /usr/local/bin/minikube "https://storage.googleapis.com/minikube/releases/${MINIKUBE_VERSION}/minikube-linux-${architecture}"
- chmod 0755 /usr/local/bin/minikube
- if [ "$MINIKUBE_SHA256" = "automatic" ]; then
- MINIKUBE_SHA256="$(curl -sSL "https://storage.googleapis.com/minikube/releases/${MINIKUBE_VERSION}/minikube-linux-${architecture}.sha256")"
- fi
- ([ "${MINIKUBE_SHA256}" = "dev-mode" ] || (echo "${MINIKUBE_SHA256} */usr/local/bin/minikube" | sha256sum -c -))
- if ! type minikube > /dev/null 2>&1; then
- echo '(!) minikube installation failed!'
- exit 1
- fi
-fi
-
-if ! type docker > /dev/null 2>&1; then
- echo -e '\n(*) Warning: The docker command was not found.\n\nYou can use one of the following scripts to install it:\n\nhttps://github.com/microsoft/vscode-dev-containers/blob/main/script-library/docs/docker-in-docker.md\n\nor\n\nhttps://github.com/microsoft/vscode-dev-containers/blob/main/script-library/docs/docker.md'
-fi
-
-echo -e "\nDone!"
\ No newline at end of file
diff --git a/docker/library-scripts/meta.env b/docker/library-scripts/meta.env
deleted file mode 100644
index e1ac91065..000000000
--- a/docker/library-scripts/meta.env
+++ /dev/null
@@ -1 +0,0 @@
-VERSION='dev'
\ No newline at end of file