Compare commits
17 commits
joshspicer
...
main
Author | SHA1 | Date | |
---|---|---|---|
768d4c8398 | |||
0a4f338966 | |||
297c9da2d8 | |||
f0abbb5ccd | |||
fd426c9ceb | |||
dfb174d4e4 | |||
|
3ea4d6bbd7 | ||
|
def3a41f57 | ||
|
d53b9d1816 | ||
|
710103a638 | ||
|
7324b6d03c | ||
|
d4ecc7be06 | ||
|
719901a1b4 | ||
|
4c2c9f7b95 | ||
|
e645120a39 | ||
|
1155a9906b | ||
|
36a3604b90 |
37 changed files with 126 additions and 146 deletions
|
@ -1,18 +1,17 @@
|
||||||
{
|
{
|
||||||
"image": "mcr.microsoft.com/vscode/devcontainers/javascript-node:0-18",
|
"image": "mcr.microsoft.com/devcontainers/javascript-node:1-18",
|
||||||
"remoteUser": "node",
|
|
||||||
"customizations": {
|
|
||||||
"vscode": {
|
|
||||||
"extensions": [
|
|
||||||
"mads-hartmann.bash-ide-vscode"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"features": {
|
"features": {
|
||||||
"ghcr.io/devcontainers/features/docker-in-docker:2": {}
|
"ghcr.io/devcontainers/features/docker-in-docker:2": {}
|
||||||
},
|
},
|
||||||
"postCreateCommand": "npm install -g @devcontainers/cli",
|
"postCreateCommand": "npm install -g @devcontainers/cli",
|
||||||
"hostRequirements": {
|
"hostRequirements": {
|
||||||
"cpus": 4
|
"cpus": 4
|
||||||
|
},
|
||||||
|
"customizations": {
|
||||||
|
"vscode": {
|
||||||
|
"extensions": [
|
||||||
|
"mads-hartmann.bash-ide-vscode"
|
||||||
|
]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"id": "aws-cli",
|
"id": "aws-cli",
|
||||||
"version": "1.0.6",
|
"version": "1.0.7",
|
||||||
"name": "AWS CLI",
|
"name": "AWS CLI",
|
||||||
"documentationURL": "https://github.com/devcontainers/features/tree/main/src/aws-cli",
|
"documentationURL": "https://github.com/devcontainers/features/tree/main/src/aws-cli",
|
||||||
"description": "Installs the AWS CLI along with needed dependencies. Useful for base Dockerfiles that often are missing required install dependencies like gpg.",
|
"description": "Installs the AWS CLI along with needed dependencies. Useful for base Dockerfiles that often are missing required install dependencies like gpg.",
|
||||||
|
|
|
@ -50,21 +50,6 @@ if [ "$(id -u)" -ne 0 ]; then
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
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}"
|
|
||||||
}
|
|
||||||
|
|
||||||
apt_get_update()
|
apt_get_update()
|
||||||
{
|
{
|
||||||
echo "Running apt-get update..."
|
echo "Running apt-get update..."
|
||||||
|
@ -89,9 +74,6 @@ check_packages curl ca-certificates gnupg2 dirmngr unzip
|
||||||
verify_aws_cli_gpg_signature() {
|
verify_aws_cli_gpg_signature() {
|
||||||
local filePath=$1
|
local filePath=$1
|
||||||
local sigFilePath=$2
|
local sigFilePath=$2
|
||||||
|
|
||||||
get_common_setting AWSCLI_GPG_KEY
|
|
||||||
get_common_setting AWSCLI_GPG_KEY_MATERIAL true
|
|
||||||
local awsGpgKeyring=aws-cli-public-key.gpg
|
local awsGpgKeyring=aws-cli-public-key.gpg
|
||||||
|
|
||||||
echo "${AWSCLI_GPG_KEY_MATERIAL}" | gpg --dearmor > "./${awsGpgKeyring}"
|
echo "${AWSCLI_GPG_KEY_MATERIAL}" | gpg --dearmor > "./${awsGpgKeyring}"
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"id": "azure-cli",
|
"id": "azure-cli",
|
||||||
"version": "1.2.1",
|
"version": "1.2.2",
|
||||||
"name": "Azure CLI",
|
"name": "Azure CLI",
|
||||||
"documentationURL": "https://github.com/devcontainers/features/tree/main/src/azure-cli",
|
"documentationURL": "https://github.com/devcontainers/features/tree/main/src/azure-cli",
|
||||||
"description": "Installs the Azure CLI along with needed dependencies. Useful for base Dockerfiles that often are missing required install dependencies like gpg.",
|
"description": "Installs the Azure CLI along with needed dependencies. Useful for base Dockerfiles that often are missing required install dependencies like gpg.",
|
||||||
|
|
|
@ -32,21 +32,6 @@ fi
|
||||||
|
|
||||||
echo "Effective REMOTE_USER: ${_REMOTE_USER}"
|
echo "Effective REMOTE_USER: ${_REMOTE_USER}"
|
||||||
|
|
||||||
# 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}"
|
|
||||||
}
|
|
||||||
|
|
||||||
apt_get_update()
|
apt_get_update()
|
||||||
{
|
{
|
||||||
echo "Running apt-get update..."
|
echo "Running apt-get update..."
|
||||||
|
@ -110,7 +95,6 @@ install_using_apt() {
|
||||||
# Install dependencies
|
# Install dependencies
|
||||||
check_packages apt-transport-https curl ca-certificates gnupg2 dirmngr
|
check_packages apt-transport-https curl ca-certificates gnupg2 dirmngr
|
||||||
# Import key safely (new 'signed-by' method rather than deprecated apt-key approach) and install
|
# Import key safely (new 'signed-by' method rather than deprecated apt-key approach) and install
|
||||||
get_common_setting MICROSOFT_GPG_KEYS_URI
|
|
||||||
curl -sSL ${MICROSOFT_GPG_KEYS_URI} | gpg --dearmor > /usr/share/keyrings/microsoft-archive-keyring.gpg
|
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/azure-cli/ ${VERSION_CODENAME} main" > /etc/apt/sources.list.d/azure-cli.list
|
echo "deb [arch=${architecture} signed-by=/usr/share/keyrings/microsoft-archive-keyring.gpg] https://packages.microsoft.com/repos/azure-cli/ ${VERSION_CODENAME} main" > /etc/apt/sources.list.d/azure-cli.list
|
||||||
apt-get update
|
apt-get update
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"id": "common-utils",
|
"id": "common-utils",
|
||||||
"version": "2.2.0",
|
"version": "2.3.1",
|
||||||
"name": "Common Utilities",
|
"name": "Common Utilities",
|
||||||
"documentationURL": "https://github.com/devcontainers/features/tree/main/src/common-utils",
|
"documentationURL": "https://github.com/devcontainers/features/tree/main/src/common-utils",
|
||||||
"description": "Installs a set of common command line utilities, Oh My Zsh!, and sets up a non-root user.",
|
"description": "Installs a set of common command line utilities, Oh My Zsh!, and sets up a non-root user.",
|
||||||
|
|
|
@ -222,7 +222,9 @@ install_redhat_packages() {
|
||||||
package_list="${package_list} zsh"
|
package_list="${package_list} zsh"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ -n "${package_list}" ]; then
|
||||||
${install_cmd} -y install ${package_list}
|
${install_cmd} -y install ${package_list}
|
||||||
|
fi
|
||||||
|
|
||||||
# Get to latest versions of all packages
|
# Get to latest versions of all packages
|
||||||
if [ "${UPGRADE_PACKAGES}" = "true" ]; then
|
if [ "${UPGRADE_PACKAGES}" = "true" ]; then
|
||||||
|
@ -421,6 +423,7 @@ fi
|
||||||
# Restore user .bashrc / .profile / .zshrc defaults from skeleton file if it doesn't exist or is empty
|
# Restore user .bashrc / .profile / .zshrc defaults from skeleton file if it doesn't exist or is empty
|
||||||
possible_rc_files=( ".bashrc" ".profile" )
|
possible_rc_files=( ".bashrc" ".profile" )
|
||||||
[ "$INSTALL_OH_MY_ZSH_CONFIG" == "true" ] && possible_rc_files+=('.zshrc')
|
[ "$INSTALL_OH_MY_ZSH_CONFIG" == "true" ] && possible_rc_files+=('.zshrc')
|
||||||
|
[ "$INSTALL_ZSH" == "true" ] && possible_rc_files+=('.zprofile')
|
||||||
for rc_file in "${possible_rc_files[@]}"; do
|
for rc_file in "${possible_rc_files[@]}"; do
|
||||||
if [ -f "/etc/skel/${rc_file}" ]; then
|
if [ -f "/etc/skel/${rc_file}" ]; then
|
||||||
if [ ! -e "${user_home}/${rc_file}" ] || [ ! -s "${user_home}/${rc_file}" ]; then
|
if [ ! -e "${user_home}/${rc_file}" ] || [ ! -s "${user_home}/${rc_file}" ]; then
|
||||||
|
@ -456,13 +459,19 @@ fi
|
||||||
|
|
||||||
# Optionally configure zsh and Oh My Zsh!
|
# Optionally configure zsh and Oh My Zsh!
|
||||||
if [ "${INSTALL_ZSH}" = "true" ]; then
|
if [ "${INSTALL_ZSH}" = "true" ]; then
|
||||||
|
if [ ! -f "${user_home}/.zprofile" ]; then
|
||||||
|
touch "${user_home}/.zprofile"
|
||||||
|
echo 'source $HOME/.profile' >> "${user_home}/.zprofile" # TODO: Reconsider adding '.profile' to '.zprofile'
|
||||||
|
chown ${USERNAME}:${group_name} "${user_home}/.zprofile"
|
||||||
|
fi
|
||||||
|
|
||||||
if [ "${ZSH_ALREADY_INSTALLED}" != "true" ]; then
|
if [ "${ZSH_ALREADY_INSTALLED}" != "true" ]; then
|
||||||
if [ "${ADJUSTED_ID}" = "rhel" ]; then
|
if [ "${ADJUSTED_ID}" = "rhel" ]; then
|
||||||
global_rc_path="/etc/zshrc"
|
global_rc_path="/etc/zshrc"
|
||||||
else
|
else
|
||||||
global_rc_path="/etc/zsh/zshrc"
|
global_rc_path="/etc/zsh/zshrc"
|
||||||
fi
|
fi
|
||||||
cat "${FEATURE_DIR}/scripts/rc_snippet.sh" >> /etc/zshrc
|
cat "${FEATURE_DIR}/scripts/rc_snippet.sh" >> ${global_rc_path}
|
||||||
ZSH_ALREADY_INSTALLED="true"
|
ZSH_ALREADY_INSTALLED="true"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"id": "docker-in-docker",
|
"id": "docker-in-docker",
|
||||||
"version": "2.7.0",
|
"version": "2.7.1",
|
||||||
"name": "Docker (Docker-in-Docker)",
|
"name": "Docker (Docker-in-Docker)",
|
||||||
"documentationURL": "https://github.com/devcontainers/features/tree/main/src/docker-in-docker",
|
"documentationURL": "https://github.com/devcontainers/features/tree/main/src/docker-in-docker",
|
||||||
"description": "Create child containers *inside* a container, independent from the host's docker instance. Installs Docker extension in the container along with needed CLIs.",
|
"description": "Create child containers *inside* a container, independent from the host's docker instance. Installs Docker extension in the container along with needed CLIs.",
|
||||||
|
|
|
@ -57,21 +57,6 @@ elif [ "${USERNAME}" = "none" ] || ! id -u ${USERNAME} > /dev/null 2>&1; then
|
||||||
USERNAME=root
|
USERNAME=root
|
||||||
fi
|
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}"
|
|
||||||
}
|
|
||||||
|
|
||||||
apt_get_update()
|
apt_get_update()
|
||||||
{
|
{
|
||||||
if [ "$(find /var/lib/apt/lists/* | wc -l)" = "0" ]; then
|
if [ "$(find /var/lib/apt/lists/* | wc -l)" = "0" ]; then
|
||||||
|
@ -137,8 +122,6 @@ architecture="$(dpkg --print-architecture)"
|
||||||
|
|
||||||
# Check if distro is supported
|
# Check if distro is supported
|
||||||
if [ "${USE_MOBY}" = "true" ]; then
|
if [ "${USE_MOBY}" = "true" ]; then
|
||||||
# 'get_common_setting' allows attribute to be updated remotely
|
|
||||||
get_common_setting DOCKER_MOBY_ARCHIVE_VERSION_CODENAMES
|
|
||||||
if [[ "${DOCKER_MOBY_ARCHIVE_VERSION_CODENAMES}" != *"${VERSION_CODENAME}"* ]]; then
|
if [[ "${DOCKER_MOBY_ARCHIVE_VERSION_CODENAMES}" != *"${VERSION_CODENAME}"* ]]; then
|
||||||
err "Unsupported distribution version '${VERSION_CODENAME}'. To resolve, either: (1) set feature option '\"moby\": false' , or (2) choose a compatible OS distribution"
|
err "Unsupported distribution version '${VERSION_CODENAME}'. To resolve, either: (1) set feature option '\"moby\": false' , or (2) choose a compatible OS distribution"
|
||||||
err "Support distributions include: ${DOCKER_MOBY_ARCHIVE_VERSION_CODENAMES}"
|
err "Support distributions include: ${DOCKER_MOBY_ARCHIVE_VERSION_CODENAMES}"
|
||||||
|
@ -146,7 +129,6 @@ if [ "${USE_MOBY}" = "true" ]; then
|
||||||
fi
|
fi
|
||||||
echo "Distro codename '${VERSION_CODENAME}' matched filter '${DOCKER_MOBY_ARCHIVE_VERSION_CODENAMES}'"
|
echo "Distro codename '${VERSION_CODENAME}' matched filter '${DOCKER_MOBY_ARCHIVE_VERSION_CODENAMES}'"
|
||||||
else
|
else
|
||||||
get_common_setting DOCKER_LICENSED_ARCHIVE_VERSION_CODENAMES
|
|
||||||
if [[ "${DOCKER_LICENSED_ARCHIVE_VERSION_CODENAMES}" != *"${VERSION_CODENAME}"* ]]; then
|
if [[ "${DOCKER_LICENSED_ARCHIVE_VERSION_CODENAMES}" != *"${VERSION_CODENAME}"* ]]; then
|
||||||
err "Unsupported distribution version '${VERSION_CODENAME}'. To resolve, please choose a compatible OS distribution"
|
err "Unsupported distribution version '${VERSION_CODENAME}'. To resolve, please choose a compatible OS distribution"
|
||||||
err "Support distributions include: ${DOCKER_LICENSED_ARCHIVE_VERSION_CODENAMES}"
|
err "Support distributions include: ${DOCKER_LICENSED_ARCHIVE_VERSION_CODENAMES}"
|
||||||
|
@ -177,7 +159,6 @@ if [ "${USE_MOBY}" = "true" ]; then
|
||||||
cli_package_name="moby-cli"
|
cli_package_name="moby-cli"
|
||||||
|
|
||||||
# Import key safely and import Microsoft apt repo
|
# 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
|
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
|
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
|
else
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"id": "docker-outside-of-docker",
|
"id": "docker-outside-of-docker",
|
||||||
"version": "1.3.0",
|
"version": "1.3.1",
|
||||||
"name": "Docker (docker-outside-of-docker)",
|
"name": "Docker (docker-outside-of-docker)",
|
||||||
"documentationURL": "https://github.com/devcontainers/features/tree/main/src/docker-outside-of-docker",
|
"documentationURL": "https://github.com/devcontainers/features/tree/main/src/docker-outside-of-docker",
|
||||||
"description": "Re-use the host docker socket, adding the Docker CLI to a container. Feature invokes a script to enable using a forwarded Docker socket within a container to run Docker commands.",
|
"description": "Re-use the host docker socket, adding the Docker CLI to a container. Feature invokes a script to enable using a forwarded Docker socket within a container to run Docker commands.",
|
||||||
|
|
|
@ -18,8 +18,8 @@ USERNAME="${USERNAME:-"${_REMOTE_USER:-"automatic"}"}"
|
||||||
INSTALL_DOCKER_BUILDX="${INSTALLDOCKERBUILDX:-"true"}"
|
INSTALL_DOCKER_BUILDX="${INSTALLDOCKERBUILDX:-"true"}"
|
||||||
|
|
||||||
MICROSOFT_GPG_KEYS_URI="https://packages.microsoft.com/keys/microsoft.asc"
|
MICROSOFT_GPG_KEYS_URI="https://packages.microsoft.com/keys/microsoft.asc"
|
||||||
DOCKER_MOBY_ARCHIVE_VERSION_CODENAMES="buster bullseye bionic focal jammy"
|
DOCKER_MOBY_ARCHIVE_VERSION_CODENAMES="bookworm buster bullseye bionic focal jammy"
|
||||||
DOCKER_LICENSED_ARCHIVE_VERSION_CODENAMES="buster bullseye bionic focal hirsute impish jammy"
|
DOCKER_LICENSED_ARCHIVE_VERSION_CODENAMES="bookworm buster bullseye bionic focal hirsute impish jammy"
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
|
@ -48,21 +48,6 @@ elif [ "${USERNAME}" = "none" ] || ! id -u ${USERNAME} > /dev/null 2>&1; then
|
||||||
USERNAME=root
|
USERNAME=root
|
||||||
fi
|
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}"
|
|
||||||
}
|
|
||||||
|
|
||||||
apt_get_update()
|
apt_get_update()
|
||||||
{
|
{
|
||||||
if [ "$(find /var/lib/apt/lists/* | wc -l)" = "0" ]; then
|
if [ "$(find /var/lib/apt/lists/* | wc -l)" = "0" ]; then
|
||||||
|
@ -129,8 +114,6 @@ architecture="$(dpkg --print-architecture)"
|
||||||
|
|
||||||
# Check if distro is supported
|
# Check if distro is supported
|
||||||
if [ "${USE_MOBY}" = "true" ]; then
|
if [ "${USE_MOBY}" = "true" ]; then
|
||||||
# 'get_common_setting' allows attribute to be updated remotely
|
|
||||||
get_common_setting DOCKER_MOBY_ARCHIVE_VERSION_CODENAMES
|
|
||||||
if [[ "${DOCKER_MOBY_ARCHIVE_VERSION_CODENAMES}" != *"${VERSION_CODENAME}"* ]]; then
|
if [[ "${DOCKER_MOBY_ARCHIVE_VERSION_CODENAMES}" != *"${VERSION_CODENAME}"* ]]; then
|
||||||
err "Unsupported distribution version '${VERSION_CODENAME}'. To resolve, either: (1) set feature option '\"moby\": false' , or (2) choose a compatible OS distribution"
|
err "Unsupported distribution version '${VERSION_CODENAME}'. To resolve, either: (1) set feature option '\"moby\": false' , or (2) choose a compatible OS distribution"
|
||||||
err "Support distributions include: ${DOCKER_MOBY_ARCHIVE_VERSION_CODENAMES}"
|
err "Support distributions include: ${DOCKER_MOBY_ARCHIVE_VERSION_CODENAMES}"
|
||||||
|
@ -138,7 +121,6 @@ if [ "${USE_MOBY}" = "true" ]; then
|
||||||
fi
|
fi
|
||||||
echo "Distro codename '${VERSION_CODENAME}' matched filter '${DOCKER_MOBY_ARCHIVE_VERSION_CODENAMES}'"
|
echo "Distro codename '${VERSION_CODENAME}' matched filter '${DOCKER_MOBY_ARCHIVE_VERSION_CODENAMES}'"
|
||||||
else
|
else
|
||||||
get_common_setting DOCKER_LICENSED_ARCHIVE_VERSION_CODENAMES
|
|
||||||
if [[ "${DOCKER_LICENSED_ARCHIVE_VERSION_CODENAMES}" != *"${VERSION_CODENAME}"* ]]; then
|
if [[ "${DOCKER_LICENSED_ARCHIVE_VERSION_CODENAMES}" != *"${VERSION_CODENAME}"* ]]; then
|
||||||
err "Unsupported distribution version '${VERSION_CODENAME}'. To resolve, please choose a compatible OS distribution"
|
err "Unsupported distribution version '${VERSION_CODENAME}'. To resolve, please choose a compatible OS distribution"
|
||||||
err "Support distributions include: ${DOCKER_LICENSED_ARCHIVE_VERSION_CODENAMES}"
|
err "Support distributions include: ${DOCKER_LICENSED_ARCHIVE_VERSION_CODENAMES}"
|
||||||
|
@ -153,7 +135,6 @@ if [ "${USE_MOBY}" = "true" ]; then
|
||||||
cli_package_name="moby-cli"
|
cli_package_name="moby-cli"
|
||||||
|
|
||||||
# Import key safely and import Microsoft apt repo
|
# 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
|
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
|
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
|
else
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"id": "dotnet",
|
"id": "dotnet",
|
||||||
"version": "2.0.1",
|
"version": "2.0.2",
|
||||||
"name": "Dotnet CLI",
|
"name": "Dotnet CLI",
|
||||||
"documentationURL": "https://github.com/devcontainers/features/tree/main/src/dotnet",
|
"documentationURL": "https://github.com/devcontainers/features/tree/main/src/dotnet",
|
||||||
"description": "This Feature installs the latest .NET SDK, which includes the .NET CLI and the shared runtime. Options are provided to choose a different version or additional versions.",
|
"description": "This Feature installs the latest .NET SDK, which includes the .NET CLI and the shared runtime. Options are provided to choose a different version or additional versions.",
|
||||||
|
|
7
src/dotnet/scripts/vendor/dotnet-install.sh
vendored
7
src/dotnet/scripts/vendor/dotnet-install.sh
vendored
|
@ -423,8 +423,13 @@ get_normalized_os() {
|
||||||
echo "$osname"
|
echo "$osname"
|
||||||
return 0
|
return 0
|
||||||
;;
|
;;
|
||||||
|
macos)
|
||||||
|
osname='osx'
|
||||||
|
echo "$osname"
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
say_err "'$user_defined_os' is not a supported value for --os option, supported values are: osx, linux, linux-musl, freebsd, rhel.6. If you think this is a bug, report it at https://github.com/dotnet/install-scripts/issues."
|
say_err "'$user_defined_os' is not a supported value for --os option, supported values are: osx, macos, linux, linux-musl, freebsd, rhel.6. If you think this is a bug, report it at https://github.com/dotnet/install-scripts/issues."
|
||||||
return 1
|
return 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"id": "git-lfs",
|
"id": "git-lfs",
|
||||||
"version": "1.1.0",
|
"version": "1.1.1",
|
||||||
"name": "Git Large File Support (LFS)",
|
"name": "Git Large File Support (LFS)",
|
||||||
"documentationURL": "https://github.com/devcontainers/features/tree/main/src/git-lfs",
|
"documentationURL": "https://github.com/devcontainers/features/tree/main/src/git-lfs",
|
||||||
"description": "Installs Git Large File Support (Git LFS) along with needed dependencies. Useful for base Dockerfiles that often are missing required install dependencies like git and curl.",
|
"description": "Installs Git Large File Support (Git LFS) along with needed dependencies. Useful for base Dockerfiles that often are missing required install dependencies like git and curl.",
|
||||||
|
|
|
@ -15,6 +15,7 @@ GIT_LFS_ARCHIVE_ARCHITECTURES="amd64 arm64"
|
||||||
GIT_LFS_ARCHIVE_VERSION_CODENAMES="stretch buster bullseye bionic focal jammy"
|
GIT_LFS_ARCHIVE_VERSION_CODENAMES="stretch buster bullseye bionic focal jammy"
|
||||||
GIT_LFS_CHECKSUM_GPG_KEYS="0x88ace9b29196305ba9947552f1ba225c0223b187 0x86cd3297749375bcf8206715f54fe648088335a9 0xaa3b3450295830d2de6db90caba67be5a5795889"
|
GIT_LFS_CHECKSUM_GPG_KEYS="0x88ace9b29196305ba9947552f1ba225c0223b187 0x86cd3297749375bcf8206715f54fe648088335a9 0xaa3b3450295830d2de6db90caba67be5a5795889"
|
||||||
GPG_KEY_SERVERS="keyserver hkp://keyserver.ubuntu.com
|
GPG_KEY_SERVERS="keyserver hkp://keyserver.ubuntu.com
|
||||||
|
keyserver hkp://keyserver.ubuntu.com:80
|
||||||
keyserver hkps://keys.openpgp.org
|
keyserver hkps://keys.openpgp.org
|
||||||
keyserver hkp://keyserver.pgp.com"
|
keyserver hkp://keyserver.pgp.com"
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"id": "git",
|
"id": "git",
|
||||||
"version": "1.1.5",
|
"version": "1.1.6",
|
||||||
"name": "Git (from source)",
|
"name": "Git (from source)",
|
||||||
"documentationURL": "https://github.com/devcontainers/features/tree/main/src/git",
|
"documentationURL": "https://github.com/devcontainers/features/tree/main/src/git",
|
||||||
"description": "Install an up-to-date version of Git, built from source as needed. Useful for when you want the latest and greatest features. Auto-detects latest stable version and installs needed dependencies.",
|
"description": "Install an up-to-date version of Git, built from source as needed. Useful for when you want the latest and greatest features. Auto-detects latest stable version and installs needed dependencies.",
|
||||||
|
|
|
@ -12,6 +12,7 @@ USE_PPA_IF_AVAILABLE=${PPA}
|
||||||
|
|
||||||
GIT_CORE_PPA_ARCHIVE_GPG_KEY=E1DD270288B4E6030699E45FA1715D88E1DF1F24
|
GIT_CORE_PPA_ARCHIVE_GPG_KEY=E1DD270288B4E6030699E45FA1715D88E1DF1F24
|
||||||
GPG_KEY_SERVERS="keyserver hkp://keyserver.ubuntu.com
|
GPG_KEY_SERVERS="keyserver hkp://keyserver.ubuntu.com
|
||||||
|
keyserver hkp://keyserver.ubuntu.com:80
|
||||||
keyserver hkps://keys.openpgp.org
|
keyserver hkps://keys.openpgp.org
|
||||||
keyserver hkp://keyserver.pgp.com"
|
keyserver hkp://keyserver.pgp.com"
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"id": "github-cli",
|
"id": "github-cli",
|
||||||
"version": "1.0.10",
|
"version": "1.0.11",
|
||||||
"name": "GitHub CLI",
|
"name": "GitHub CLI",
|
||||||
"documentationURL": "https://github.com/devcontainers/features/tree/main/src/github-cli",
|
"documentationURL": "https://github.com/devcontainers/features/tree/main/src/github-cli",
|
||||||
"description": "Installs the GitHub CLI. Auto-detects latest version and installs needed dependencies.",
|
"description": "Installs the GitHub CLI. Auto-detects latest version and installs needed dependencies.",
|
||||||
|
|
|
@ -12,6 +12,7 @@ INSTALL_DIRECTLY_FROM_GITHUB_RELEASE=${INSTALLDIRECTLYFROMGITHUBRELEASE:-"true"}
|
||||||
|
|
||||||
GITHUB_CLI_ARCHIVE_GPG_KEY=23F3D4EA75716059
|
GITHUB_CLI_ARCHIVE_GPG_KEY=23F3D4EA75716059
|
||||||
GPG_KEY_SERVERS="keyserver hkp://keyserver.ubuntu.com
|
GPG_KEY_SERVERS="keyserver hkp://keyserver.ubuntu.com
|
||||||
|
keyserver hkp://keyserver.ubuntu.com:80
|
||||||
keyserver hkps://keys.openpgp.org
|
keyserver hkps://keys.openpgp.org
|
||||||
keyserver hkp://keyserver.pgp.com"
|
keyserver hkp://keyserver.pgp.com"
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"id": "go",
|
"id": "go",
|
||||||
"version": "1.2.1",
|
"version": "1.2.2",
|
||||||
"name": "Go",
|
"name": "Go",
|
||||||
"documentationURL": "https://github.com/devcontainers/features/tree/main/src/go",
|
"documentationURL": "https://github.com/devcontainers/features/tree/main/src/go",
|
||||||
"description": "Installs Go and common Go utilities. Auto-detects latest version and installs needed dependencies.",
|
"description": "Installs Go and common Go utilities. Auto-detects latest version and installs needed dependencies.",
|
||||||
|
|
|
@ -84,21 +84,6 @@ find_version_from_git_tags() {
|
||||||
echo "${variable_name}=${!variable_name}"
|
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}"
|
|
||||||
}
|
|
||||||
|
|
||||||
apt_get_update()
|
apt_get_update()
|
||||||
{
|
{
|
||||||
if [ "$(find /var/lib/apt/lists/* | wc -l)" = "0" ]; then
|
if [ "$(find /var/lib/apt/lists/* | wc -l)" = "0" ]; then
|
||||||
|
@ -148,7 +133,6 @@ if [[ "${TARGET_GO_VERSION}" != "none" ]] && [[ "$(go version)" != *"${TARGET_GO
|
||||||
export GNUPGHOME="/tmp/tmp-gnupg"
|
export GNUPGHOME="/tmp/tmp-gnupg"
|
||||||
mkdir -p ${GNUPGHOME}
|
mkdir -p ${GNUPGHOME}
|
||||||
chmod 700 ${GNUPGHOME}
|
chmod 700 ${GNUPGHOME}
|
||||||
get_common_setting GO_GPG_KEY_URI
|
|
||||||
curl -sSL -o /tmp/tmp-gnupg/golang_key "${GO_GPG_KEY_URI}"
|
curl -sSL -o /tmp/tmp-gnupg/golang_key "${GO_GPG_KEY_URI}"
|
||||||
gpg -q --import /tmp/tmp-gnupg/golang_key
|
gpg -q --import /tmp/tmp-gnupg/golang_key
|
||||||
echo "Downloading Go ${TARGET_GO_VERSION}..."
|
echo "Downloading Go ${TARGET_GO_VERSION}..."
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"id": "kubectl-helm-minikube",
|
"id": "kubectl-helm-minikube",
|
||||||
"version": "1.1.4",
|
"version": "1.1.5",
|
||||||
"name": "Kubectl, Helm, and Minikube",
|
"name": "Kubectl, Helm, and Minikube",
|
||||||
"documentationURL": "https://github.com/devcontainers/features/tree/main/src/kubectl-helm-minikube",
|
"documentationURL": "https://github.com/devcontainers/features/tree/main/src/kubectl-helm-minikube",
|
||||||
"description": "Installs latest version of kubectl, Helm, and optionally minikube. Auto-detects latest versions and installs needed dependencies.",
|
"description": "Installs latest version of kubectl, Helm, and optionally minikube. Auto-detects latest versions and installs needed dependencies.",
|
||||||
|
|
|
@ -23,6 +23,7 @@ USERNAME="${USERNAME:-"${_REMOTE_USER:-"automatic"}"}"
|
||||||
|
|
||||||
HELM_GPG_KEYS_URI="https://raw.githubusercontent.com/helm/helm/main/KEYS"
|
HELM_GPG_KEYS_URI="https://raw.githubusercontent.com/helm/helm/main/KEYS"
|
||||||
GPG_KEY_SERVERS="keyserver hkp://keyserver.ubuntu.com
|
GPG_KEY_SERVERS="keyserver hkp://keyserver.ubuntu.com
|
||||||
|
keyserver hkp://keyserver.ubuntu.com:80
|
||||||
keyserver hkps://keys.openpgp.org
|
keyserver hkps://keys.openpgp.org
|
||||||
keyserver hkp://keyserver.pgp.com"
|
keyserver hkp://keyserver.pgp.com"
|
||||||
|
|
||||||
|
|
|
@ -18,6 +18,12 @@ Installs PowerShell along with needed dependencies. Useful for base Dockerfiles
|
||||||
| version | Select or enter a version of PowerShell. | string | latest |
|
| version | Select or enter a version of PowerShell. | string | latest |
|
||||||
| modules | Optional comma separated list of PowerShell modules to install. | string | - |
|
| modules | Optional comma separated list of PowerShell modules to install. | string | - |
|
||||||
|
|
||||||
|
## Customizations
|
||||||
|
|
||||||
|
### VS Code Extensions
|
||||||
|
|
||||||
|
- `ms-vscode.powershell`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## OS Support
|
## OS Support
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"id": "powershell",
|
"id": "powershell",
|
||||||
"version": "1.1.0",
|
"version": "1.2.0",
|
||||||
"name": "PowerShell",
|
"name": "PowerShell",
|
||||||
"documentationURL": "https://github.com/devcontainers/features/tree/main/src/powershell",
|
"documentationURL": "https://github.com/devcontainers/features/tree/main/src/powershell",
|
||||||
"description": "Installs PowerShell along with needed dependencies. Useful for base Dockerfiles that often are missing required install dependencies like gpg.",
|
"description": "Installs PowerShell along with needed dependencies. Useful for base Dockerfiles that often are missing required install dependencies like gpg.",
|
||||||
|
@ -21,6 +21,13 @@
|
||||||
"description": "Optional comma separated list of PowerShell modules to install."
|
"description": "Optional comma separated list of PowerShell modules to install."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"customizations": {
|
||||||
|
"vscode": {
|
||||||
|
"extensions": [
|
||||||
|
"ms-vscode.powershell"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
"installsAfter": [
|
"installsAfter": [
|
||||||
"ghcr.io/devcontainers/features/common-utils"
|
"ghcr.io/devcontainers/features/common-utils"
|
||||||
]
|
]
|
||||||
|
|
|
@ -19,6 +19,7 @@ MICROSOFT_GPG_KEYS_URI="https://packages.microsoft.com/keys/microsoft.asc"
|
||||||
POWERSHELL_ARCHIVE_ARCHITECTURES="amd64"
|
POWERSHELL_ARCHIVE_ARCHITECTURES="amd64"
|
||||||
POWERSHELL_ARCHIVE_VERSION_CODENAMES="stretch buster bionic focal bullseye jammy"
|
POWERSHELL_ARCHIVE_VERSION_CODENAMES="stretch buster bionic focal bullseye jammy"
|
||||||
GPG_KEY_SERVERS="keyserver hkp://keyserver.ubuntu.com
|
GPG_KEY_SERVERS="keyserver hkp://keyserver.ubuntu.com
|
||||||
|
keyserver hkp://keyserver.ubuntu.com:80
|
||||||
keyserver hkps://keys.openpgp.org
|
keyserver hkps://keys.openpgp.org
|
||||||
keyserver hkp://keyserver.pgp.com"
|
keyserver hkp://keyserver.pgp.com"
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"id": "python",
|
"id": "python",
|
||||||
"version": "1.2.1",
|
"version": "1.3.1",
|
||||||
"name": "Python",
|
"name": "Python",
|
||||||
"documentationURL": "https://github.com/devcontainers/features/tree/main/src/python",
|
"documentationURL": "https://github.com/devcontainers/features/tree/main/src/python",
|
||||||
"description": "Installs the provided version of Python, as well as PIPX, and other common Python utilities. JupyterLab is conditionally installed with the python feature. Note: May require source code compilation.",
|
"description": "Installs the provided version of Python, as well as PIPX, and other common Python utilities. JupyterLab is conditionally installed with the python feature. Note: May require source code compilation.",
|
||||||
|
@ -11,6 +11,7 @@
|
||||||
"latest",
|
"latest",
|
||||||
"os-provided",
|
"os-provided",
|
||||||
"none",
|
"none",
|
||||||
|
"3.12",
|
||||||
"3.11",
|
"3.11",
|
||||||
"3.10",
|
"3.10",
|
||||||
"3.9",
|
"3.9",
|
||||||
|
|
|
@ -27,8 +27,9 @@ CONFIGURE_JUPYTERLAB_ALLOW_ORIGIN="${CONFIGUREJUPYTERLABALLOWORIGIN:-""}"
|
||||||
ADDITIONAL_VERSIONS="${ADDITIONALVERSIONS:-""}"
|
ADDITIONAL_VERSIONS="${ADDITIONALVERSIONS:-""}"
|
||||||
|
|
||||||
DEFAULT_UTILS=("pylint" "flake8" "autopep8" "black" "yapf" "mypy" "pydocstyle" "pycodestyle" "bandit" "pipenv" "virtualenv" "pytest")
|
DEFAULT_UTILS=("pylint" "flake8" "autopep8" "black" "yapf" "mypy" "pydocstyle" "pycodestyle" "bandit" "pipenv" "virtualenv" "pytest")
|
||||||
PYTHON_SOURCE_GPG_KEYS="64E628F8D684696D B26995E310250568 2D347EA6AA65421D FB9921286F5E1540 3A5CA953F73C700D 04C367C218ADD4FF 0EDDC5F26A45C816 6AF053F07D9DC8D2 C9BE28DEE6DF025C 126EB563A74B06BF D9866941EA5BBD71 ED9D77D5"
|
PYTHON_SOURCE_GPG_KEYS="64E628F8D684696D B26995E310250568 2D347EA6AA65421D FB9921286F5E1540 3A5CA953F73C700D 04C367C218ADD4FF 0EDDC5F26A45C816 6AF053F07D9DC8D2 C9BE28DEE6DF025C 126EB563A74B06BF D9866941EA5BBD71 ED9D77D5 A821E680E5FA6305"
|
||||||
GPG_KEY_SERVERS="keyserver hkp://keyserver.ubuntu.com
|
GPG_KEY_SERVERS="keyserver hkp://keyserver.ubuntu.com
|
||||||
|
keyserver hkp://keyserver.ubuntu.com:80
|
||||||
keyserver hkps://keys.openpgp.org
|
keyserver hkps://keys.openpgp.org
|
||||||
keyserver hkp://keyserver.pgp.com"
|
keyserver hkp://keyserver.pgp.com"
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,6 @@ Installs Ruby, rvm, rbenv, common Ruby utilities, and needed dependencies.
|
||||||
|
|
||||||
### VS Code Extensions
|
### VS Code Extensions
|
||||||
|
|
||||||
- `rebornix.Ruby`
|
|
||||||
- `shopify.ruby-lsp`
|
- `shopify.ruby-lsp`
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"id": "ruby",
|
"id": "ruby",
|
||||||
"version": "1.1.1",
|
"version": "1.2.0",
|
||||||
"name": "Ruby (via rvm)",
|
"name": "Ruby (via rvm)",
|
||||||
"documentationURL": "https://github.com/devcontainers/features/tree/main/src/ruby",
|
"documentationURL": "https://github.com/devcontainers/features/tree/main/src/ruby",
|
||||||
"description": "Installs Ruby, rvm, rbenv, common Ruby utilities, and needed dependencies.",
|
"description": "Installs Ruby, rvm, rbenv, common Ruby utilities, and needed dependencies.",
|
||||||
|
@ -21,7 +21,6 @@
|
||||||
"customizations": {
|
"customizations": {
|
||||||
"vscode": {
|
"vscode": {
|
||||||
"extensions": [
|
"extensions": [
|
||||||
"rebornix.Ruby",
|
|
||||||
"shopify.ruby-lsp"
|
"shopify.ruby-lsp"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,6 +24,7 @@ DEFAULT_GEMS="rake"
|
||||||
|
|
||||||
RVM_GPG_KEYS="409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB"
|
RVM_GPG_KEYS="409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB"
|
||||||
GPG_KEY_SERVERS="keyserver hkp://keyserver.ubuntu.com
|
GPG_KEY_SERVERS="keyserver hkp://keyserver.ubuntu.com
|
||||||
|
keyserver hkp://keyserver.ubuntu.com:80
|
||||||
keyserver hkps://keys.openpgp.org
|
keyserver hkps://keys.openpgp.org
|
||||||
keyserver hkp://keyserver.pgp.com"
|
keyserver hkp://keyserver.pgp.com"
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"id": "rust",
|
"id": "rust",
|
||||||
"version": "1.1.0",
|
"version": "1.1.1",
|
||||||
"name": "Rust",
|
"name": "Rust",
|
||||||
"documentationURL": "https://github.com/devcontainers/features/tree/main/src/rust",
|
"documentationURL": "https://github.com/devcontainers/features/tree/main/src/rust",
|
||||||
"description": "Installs Rust, common Rust utilities, and their required dependencies",
|
"description": "Installs Rust, common Rust utilities, and their required dependencies",
|
||||||
|
|
|
@ -48,21 +48,6 @@ elif [ "${USERNAME}" = "none" ] || ! id -u ${USERNAME} > /dev/null 2>&1; then
|
||||||
USERNAME=root
|
USERNAME=root
|
||||||
fi
|
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
|
# Figure out correct version of a three part version number is not passed
|
||||||
find_version_from_git_tags() {
|
find_version_from_git_tags() {
|
||||||
local variable_name=$1
|
local variable_name=$1
|
||||||
|
|
|
@ -9,6 +9,9 @@ source dev-container-features-test-lib
|
||||||
check "default-shell-is-zsh" bash -c "getent passwd $(whoami) | awk -F: '{ print $7 }' | grep '/bin/zsh'"
|
check "default-shell-is-zsh" bash -c "getent passwd $(whoami) | awk -F: '{ print $7 }' | grep '/bin/zsh'"
|
||||||
# check it overrides the ~/.zshrc with default dev containers template
|
# check it overrides the ~/.zshrc with default dev containers template
|
||||||
check "default-zshrc-is-dev-container-template" bash -c "cat ~/.zshrc | grep ZSH_THEME | grep devcontainers"
|
check "default-zshrc-is-dev-container-template" bash -c "cat ~/.zshrc | grep ZSH_THEME | grep devcontainers"
|
||||||
|
check "zsh-path-contains-local-bin" zsh -l -c "echo $PATH | grep '/home/devcontainer/.local/bin'"
|
||||||
|
|
||||||
|
check "Ensure .zprofile is owned by remoteUser" bash -c "stat -c '%U' /home/devcontainer/.zprofile | grep devcontainer"
|
||||||
|
|
||||||
# Report result
|
# Report result
|
||||||
reportResults
|
reportResults
|
||||||
|
|
|
@ -108,12 +108,14 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"configure_zsh_as_default_shell": {
|
"configure_zsh_as_default_shell": {
|
||||||
"image": "mcr.microsoft.com/devcontainers/base:ubuntu",
|
"image": "ubuntu",
|
||||||
"features": {
|
"features": {
|
||||||
"common-utils": {
|
"common-utils": {
|
||||||
|
"installZsh": true,
|
||||||
"configureZshAsDefaultShell": true
|
"configureZshAsDefaultShell": true
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
"remoteUser": "devcontainer"
|
||||||
},
|
},
|
||||||
"configure_zsh_no_template_second_step": {
|
"configure_zsh_no_template_second_step": {
|
||||||
"image": "mcr.microsoft.com/devcontainers/base:ubuntu",
|
"image": "mcr.microsoft.com/devcontainers/base:ubuntu",
|
||||||
|
|
38
test/python/install_python_3_12.sh
Executable file
38
test/python/install_python_3_12.sh
Executable file
|
@ -0,0 +1,38 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Optional: Import test library
|
||||||
|
source dev-container-features-test-lib
|
||||||
|
|
||||||
|
check "python version 3.12 installed as default" bash -c "python --version | grep 3.12"
|
||||||
|
check "python3 version 3.12 installed as default" bash -c "python3 --version | grep 3.12"
|
||||||
|
|
||||||
|
# Check that tools can execute - make sure something didn't get messed up in this scenario
|
||||||
|
check "autopep8" autopep8 --version
|
||||||
|
check "black" black --version
|
||||||
|
check "yapf" yapf --version
|
||||||
|
check "bandit" bandit --version
|
||||||
|
check "flake8" flake8 --version
|
||||||
|
check "mypy" mypy --version
|
||||||
|
check "pycodestyle" pycodestyle --version
|
||||||
|
check "pydocstyle" pydocstyle --version
|
||||||
|
check "pylint" pylint --version
|
||||||
|
check "pytest" pytest --version
|
||||||
|
|
||||||
|
# Check paths in settings
|
||||||
|
check "current symlink is correct" bash -c "which python | grep /usr/local/python/current/bin/python"
|
||||||
|
check "current symlink works" /usr/local/python/current/bin/python --version
|
||||||
|
check "which autopep8" bash -c "which autopep8 | grep /usr/local/py-utils/bin/autopep8"
|
||||||
|
check "which black" bash -c "which black | grep /usr/local/py-utils/bin/black"
|
||||||
|
check "which yapf" bash -c "which yapf | grep /usr/local/py-utils/bin/yapf"
|
||||||
|
check "which bandit" bash -c "which bandit | grep /usr/local/py-utils/bin/bandit"
|
||||||
|
check "which flake8" bash -c "which flake8 | grep /usr/local/py-utils/bin/flake8"
|
||||||
|
check "which mypy" bash -c "which mypy | grep /usr/local/py-utils/bin/mypy"
|
||||||
|
check "which pycodestyle" bash -c "which pycodestyle | grep /usr/local/py-utils/bin/pycodestyle"
|
||||||
|
check "which pydocstyle" bash -c "which pydocstyle | grep /usr/local/py-utils/bin/pydocstyle"
|
||||||
|
check "which pylint" bash -c "which pylint | grep /usr/local/py-utils/bin/pylint"
|
||||||
|
check "which pytest" bash -c "which pytest | grep /usr/local/py-utils/bin/pytest"
|
||||||
|
|
||||||
|
# Report result
|
||||||
|
reportResults
|
|
@ -32,7 +32,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"install_os_provided_python": {
|
"install_os_provided_python": {
|
||||||
"image": "mcr.microsoft.com/devcontainers/base:0-bullseye",
|
"image": "mcr.microsoft.com/devcontainers/base:1-bullseye",
|
||||||
"features": {
|
"features": {
|
||||||
"python": "os-provided"
|
"python": "os-provided"
|
||||||
}
|
}
|
||||||
|
@ -73,5 +73,13 @@
|
||||||
"configureJupyterlabAllowOrigin": "*"
|
"configureJupyterlabAllowOrigin": "*"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"install_python_3_12": {
|
||||||
|
"image": "mcr.microsoft.com/devcontainers/base:1-ubuntu-22.04",
|
||||||
|
"features": {
|
||||||
|
"python": {
|
||||||
|
"version": "3.12"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue