From f51656f514867daf08b21ba4ea299f2df7faf7d1 Mon Sep 17 00:00:00 2001 From: NeonXP Date: Sun, 28 Jan 2024 21:47:11 +0300 Subject: [PATCH] devcontainers --- .../devcontainer-collection.json | 650 ++++++++++++++++++ .../devcontainer-feature-common-utils.tgz | Bin 0 -> 46592 bytes .../devcontainer-feature-docker-in-docker.tgz | Bin 0 -> 30720 bytes ...ainer-feature-docker-outside-of-docker.tgz | Bin 0 -> 28672 bytes .../devcontainer-feature-git-lfs.tgz | Bin 0 -> 15872 bytes .../devcontainer-feature-git.tgz | Bin 0 -> 12288 bytes .../devcontainers/devcontainer-feature-go.tgz | Bin 0 -> 16384 bytes .../devcontainer-feature-hugo.tgz | Bin 0 -> 10752 bytes ...ontainer-feature-kubectl-helm-minikube.tgz | Bin 0 -> 18944 bytes .../devcontainer-feature-node.tgz | Bin 0 -> 18944 bytes .../devcontainer-feature-php.tgz | Bin 0 -> 16896 bytes .../devcontainer-feature-python.tgz | Bin 0 -> 28160 bytes .../devcontainer-feature-rust.tgz | Bin 0 -> 15872 bytes .../devcontainer-feature-sshd.tgz | Bin 0 -> 17920 bytes 14 files changed, 650 insertions(+) create mode 100644 static/devcontainers/devcontainer-collection.json create mode 100644 static/devcontainers/devcontainer-feature-common-utils.tgz create mode 100644 static/devcontainers/devcontainer-feature-docker-in-docker.tgz create mode 100644 static/devcontainers/devcontainer-feature-docker-outside-of-docker.tgz create mode 100644 static/devcontainers/devcontainer-feature-git-lfs.tgz create mode 100644 static/devcontainers/devcontainer-feature-git.tgz create mode 100644 static/devcontainers/devcontainer-feature-go.tgz create mode 100644 static/devcontainers/devcontainer-feature-hugo.tgz create mode 100644 static/devcontainers/devcontainer-feature-kubectl-helm-minikube.tgz create mode 100644 static/devcontainers/devcontainer-feature-node.tgz create mode 100644 static/devcontainers/devcontainer-feature-php.tgz create mode 100644 static/devcontainers/devcontainer-feature-python.tgz create mode 100644 static/devcontainers/devcontainer-feature-rust.tgz create mode 100644 static/devcontainers/devcontainer-feature-sshd.tgz diff --git a/static/devcontainers/devcontainer-collection.json b/static/devcontainers/devcontainer-collection.json new file mode 100644 index 0000000..810dbc5 --- /dev/null +++ b/static/devcontainers/devcontainer-collection.json @@ -0,0 +1,650 @@ +{ + "sourceInformation": { + "source": "devcontainer-cli" + }, + "features": [ + { + "id": "common-utils", + "version": "2.3.1", + "name": "Common Utilities", + "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.", + "options": { + "installZsh": { + "type": "boolean", + "default": true, + "description": "Install ZSH?" + }, + "configureZshAsDefaultShell": { + "type": "boolean", + "default": false, + "description": "Change default shell to ZSH?" + }, + "installOhMyZsh": { + "type": "boolean", + "default": true, + "description": "Install Oh My Zsh!?" + }, + "installOhMyZshConfig": { + "type": "boolean", + "default": true, + "description": "Allow installing the default dev container .zshrc templates?" + }, + "upgradePackages": { + "type": "boolean", + "default": true, + "description": "Upgrade OS packages?" + }, + "username": { + "type": "string", + "proposals": [ + "devcontainer", + "vscode", + "codespace", + "none", + "automatic" + ], + "default": "automatic", + "description": "Enter name of a non-root user to configure or none to skip" + }, + "userUid": { + "type": "string", + "proposals": [ + "1001", + "automatic" + ], + "default": "automatic", + "description": "Enter UID for non-root user" + }, + "userGid": { + "type": "string", + "proposals": [ + "1001", + "automatic" + ], + "default": "automatic", + "description": "Enter GID for non-root user" + }, + "nonFreePackages": { + "type": "boolean", + "default": false, + "description": "Add packages from non-free Debian repository? (Debian only)" + } + } + }, + { + "id": "docker-in-docker", + "version": "2.7.1", + "name": "Docker (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.", + "options": { + "version": { + "type": "string", + "proposals": [ + "latest", + "none", + "20.10" + ], + "default": "latest", + "description": "Select or enter a Docker/Moby Engine version. (Availability can vary by OS version.)" + }, + "moby": { + "type": "boolean", + "default": true, + "description": "Install OSS Moby build instead of Docker CE" + }, + "dockerDashComposeVersion": { + "type": "string", + "enum": [ + "none", + "v1", + "v2" + ], + "default": "v1", + "description": "Default version of Docker Compose (v1 or v2 or none)" + }, + "azureDnsAutoDetection": { + "type": "boolean", + "default": true, + "description": "Allow automatically setting the dockerd DNS server when the installation script detects it is running in Azure" + }, + "dockerDefaultAddressPool": { + "type": "string", + "default": "", + "proposals": [], + "description": "Define default address pools for Docker networks. e.g. base=192.168.0.0/16,size=24" + }, + "installDockerBuildx": { + "type": "boolean", + "default": true, + "description": "Install Docker Buildx" + } + }, + "entrypoint": "/usr/local/share/docker-init.sh", + "privileged": true, + "containerEnv": { + "DOCKER_BUILDKIT": "1" + }, + "customizations": { + "vscode": { + "extensions": [ + "ms-azuretools.vscode-docker" + ] + } + }, + "mounts": [ + { + "source": "dind-var-lib-docker-${devcontainerId}", + "target": "/var/lib/docker", + "type": "volume" + } + ], + "installsAfter": [ + "neonxp.ru/devcontainers/devcontainers-features-common-utils.tgz" + ] + }, + { + "id": "docker-outside-of-docker", + "version": "1.3.1", + "name": "Docker (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.", + "options": { + "version": { + "type": "string", + "proposals": [ + "latest", + "none", + "20.10" + ], + "default": "latest", + "description": "Select or enter a Docker/Moby CLI version. (Availability can vary by OS version.)" + }, + "moby": { + "type": "boolean", + "default": true, + "description": "Install OSS Moby build instead of Docker CE" + }, + "dockerDashComposeVersion": { + "type": "string", + "enum": [ + "none", + "v1", + "v2" + ], + "default": "v2", + "description": "Compose version to use for docker-compose (v1 or v2 or none)" + }, + "installDockerBuildx": { + "type": "boolean", + "default": true, + "description": "Install Docker Buildx" + } + }, + "entrypoint": "/usr/local/share/docker-init.sh", + "customizations": { + "vscode": { + "extensions": [ + "ms-azuretools.vscode-docker" + ] + } + }, + "mounts": [ + { + "source": "/var/run/docker.sock", + "target": "/var/run/docker-host.sock", + "type": "bind" + } + ], + "installsAfter": [ + "neonxp.ru/devcontainers/devcontainers-features-common-utils.tgz" + ], + "legacyIds": [ + "docker-from-docker" + ], + "currentId": "docker-outside-of-docker" + }, + { + "id": "git", + "version": "1.1.6", + "name": "Git (from source)", + "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.", + "options": { + "version": { + "type": "string", + "proposals": [ + "latest", + "os-provided" + ], + "default": "os-provided", + "description": "Select or enter a Git version." + }, + "ppa": { + "type": "boolean", + "default": true, + "description": "Install from PPA if available" + } + }, + "installsAfter": [ + "neonxp.ru/devcontainers/devcontainers-features-common-utils.tgz" + ] + }, + { + "id": "git-lfs", + "version": "1.1.1", + "name": "Git Large File Support (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.", + "options": { + "version": { + "type": "string", + "proposals": [ + "latest", + "none" + ], + "default": "latest", + "description": "Select version of Git LFS to install" + }, + "autoPull": { + "type": "boolean", + "default": true, + "description": "Automatically pull LFS files when creating the container. When false, running 'git lfs pull' in the container will have the same effect." + } + }, + "postCreateCommand": "/usr/local/share/pull-git-lfs-artifacts.sh", + "installsAfter": [ + "neonxp.ru/devcontainers/devcontainers-features-common-utils.tgz" + ] + }, + { + "id": "go", + "version": "1.2.2", + "name": "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.", + "options": { + "version": { + "type": "string", + "proposals": [ + "latest", + "none", + "1.21", + "1.20" + ], + "default": "latest", + "description": "Select or enter a Go version to install" + }, + "golangciLintVersion": { + "type": "string", + "default": "latest", + "description": "Version of golangci-lint to install" + } + }, + "init": true, + "customizations": { + "vscode": { + "extensions": [ + "golang.Go" + ] + } + }, + "containerEnv": { + "GOROOT": "/usr/local/go", + "GOPATH": "/go", + "PATH": "/usr/local/go/bin:/go/bin:${PATH}" + }, + "capAdd": [ + "SYS_PTRACE" + ], + "securityOpt": [ + "seccomp=unconfined" + ], + "installsAfter": [ + "neonxp.ru/devcontainers/devcontainers-features-common-utils.tgz" + ] + }, + { + "id": "hugo", + "version": "1.1.2", + "name": "Hugo", + "documentationURL": "https://github.com/devcontainers/features/tree/main/src/hugo", + "options": { + "version": { + "type": "string", + "proposals": [ + "latest" + ], + "default": "latest", + "description": "Select or enter a version." + }, + "extended": { + "type": "boolean", + "default": false, + "description": "Install Hugo extended for SASS/SCSS changes" + } + }, + "containerEnv": { + "HUGO_DIR": "/usr/local/hugo", + "PATH": "/usr/local/hugo/bin:${PATH}" + }, + "installsAfter": [ + "neonxp.ru/devcontainers/devcontainers-features-common-utils.tgz" + ] + }, + { + "id": "kubectl-helm-minikube", + "version": "1.1.5", + "name": "Kubectl, Helm, and 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.", + "options": { + "version": { + "type": "string", + "proposals": [ + "latest", + "none", + "1.23", + "1.22", + "1.21", + "none" + ], + "default": "latest", + "description": "Select or enter a Kubernetes version to install" + }, + "helm": { + "type": "string", + "proposals": [ + "latest", + "none" + ], + "default": "latest", + "description": "Select or enter a Helm version to install" + }, + "minikube": { + "type": "string", + "proposals": [ + "latest", + "none" + ], + "default": "latest", + "description": "Select or enter a Minikube version to install" + } + }, + "mounts": [ + { + "source": "minikube-config", + "target": "/home/vscode/.minikube", + "type": "volume" + } + ], + "installsAfter": [ + "neonxp.ru/devcontainers/devcontainers-features-common-utils.tgz" + ] + }, + { + "id": "node", + "version": "1.3.1", + "name": "Node.js (via nvm), yarn and pnpm", + "documentationURL": "https://github.com/devcontainers/features/tree/main/src/node", + "description": "Installs Node.js, nvm, yarn, pnpm, and needed dependencies.", + "options": { + "version": { + "type": "string", + "proposals": [ + "lts", + "latest", + "none", + "18", + "16", + "14" + ], + "default": "lts", + "description": "Select or enter a Node.js version to install" + }, + "nodeGypDependencies": { + "type": "boolean", + "default": true, + "description": "Install dependencies to compile native node modules (node-gyp)?" + }, + "nvmInstallPath": { + "type": "string", + "default": "/usr/local/share/nvm", + "description": "The path where NVM will be installed." + }, + "nvmVersion": { + "type": "string", + "proposals": [ + "latest", + "0.39" + ], + "default": "latest", + "description": "Version of NVM to install." + } + }, + "customizations": { + "vscode": { + "extensions": [ + "dbaeumer.vscode-eslint" + ] + } + }, + "containerEnv": { + "NVM_DIR": "/usr/local/share/nvm", + "NVM_SYMLINK_CURRENT": "true", + "PATH": "/usr/local/share/nvm/current/bin:${PATH}" + }, + "installsAfter": [ + "neonxp.ru/devcontainers/devcontainers-features-common-utils.tgz" + ] + }, + { + "id": "php", + "version": "1.1.2", + "name": "PHP", + "documentationURL": "https://github.com/devcontainers/features/tree/main/src/php", + "options": { + "version": { + "type": "string", + "proposals": [ + "latest", + "8", + "8.2", + "8.2.0", + "none" + ], + "default": "latest", + "description": "Select or enter a PHP version" + }, + "installComposer": { + "type": "boolean", + "default": true, + "description": "Install PHP Composer?" + } + }, + "customizations": { + "vscode": { + "extensions": [ + "xdebug.php-debug", + "bmewburn.vscode-intelephense-client", + "xdebug.php-pack", + "devsense.phptools-vscode" + ] + } + }, + "containerEnv": { + "PHP_PATH": "/usr/local/php/current", + "PATH": "/usr/local/php/current/bin:${PATH}" + }, + "installsAfter": [ + "neonxp.ru/devcontainers/devcontainers-features-common-utils.tgz" + ] + }, + { + "id": "python", + "version": "1.3.1", + "name": "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.", + "options": { + "version": { + "type": "string", + "proposals": [ + "latest", + "os-provided", + "none", + "3.12", + "3.11", + "3.10", + "3.9", + "3.8", + "3.7", + "3.6" + ], + "default": "os-provided", + "description": "Select a Python version to install." + }, + "installTools": { + "type": "boolean", + "default": true, + "description": "Install common Python tools like pylint" + }, + "optimize": { + "type": "boolean", + "default": false, + "description": "Optimize Python for performance when compiled (slow)" + }, + "installPath": { + "type": "string", + "default": "/usr/local/python", + "description": "The path where python will be installed." + }, + "installJupyterlab": { + "type": "boolean", + "default": false, + "description": "Install JupyterLab, a web-based interactive development environment for notebooks" + }, + "configureJupyterlabAllowOrigin": { + "type": "string", + "default": "", + "description": "Configure JupyterLab to accept HTTP requests from the specified origin" + }, + "httpProxy": { + "type": "string", + "default": "", + "description": "Connect to GPG keyservers using a proxy for fetching source code signatures by configuring this option" + } + }, + "containerEnv": { + "PYTHON_PATH": "/usr/local/python/current", + "PIPX_HOME": "/usr/local/py-utils", + "PIPX_BIN_DIR": "/usr/local/py-utils/bin", + "PATH": "/usr/local/python/current/bin:/usr/local/py-utils/bin:${PATH}" + }, + "customizations": { + "vscode": { + "extensions": [ + "ms-python.python", + "ms-python.vscode-pylance" + ], + "settings": { + "python.defaultInterpreterPath": "/usr/local/python/current/bin/python" + } + } + }, + "installsAfter": [ + "neonxp.ru/devcontainers/devcontainers-features-common-utils.tgz", + "ghcr.io/devcontainers/features/oryx" + ] + }, + { + "id": "rust", + "version": "1.1.1", + "name": "Rust", + "documentationURL": "https://github.com/devcontainers/features/tree/main/src/rust", + "description": "Installs Rust, common Rust utilities, and their required dependencies", + "options": { + "version": { + "type": "string", + "proposals": [ + "latest", + "none", + "1.70", + "1.69", + "1.68", + "1.67", + "1.66", + "1.65", + "1.64", + "1.63", + "1.62", + "1.61" + ], + "default": "latest", + "description": "Select or enter a version of Rust to install." + }, + "profile": { + "type": "string", + "proposals": [ + "minimal", + "default", + "complete" + ], + "default": "minimal", + "description": "Select a rustup install profile." + } + }, + "customizations": { + "vscode": { + "extensions": [ + "vadimcn.vscode-lldb", + "rust-lang.rust-analyzer", + "tamasfe.even-better-toml", + "serayuzgur.crates" + ], + "settings": { + "files.watcherExclude": { + "**/target/**": true + } + } + } + }, + "containerEnv": { + "CARGO_HOME": "/usr/local/cargo", + "RUSTUP_HOME": "/usr/local/rustup", + "PATH": "/usr/local/cargo/bin:${PATH}" + }, + "capAdd": [ + "SYS_PTRACE" + ], + "securityOpt": [ + "seccomp=unconfined" + ], + "installsAfter": [ + "neonxp.ru/devcontainers/devcontainers-features-common-utils.tgz" + ] + }, + { + "id": "sshd", + "version": "1.0.9", + "name": "SSH server", + "documentationURL": "https://github.com/devcontainers/features/tree/main/src/sshd", + "description": "Adds a SSH server into a container so that you can use an external terminal, sftp, or SSHFS to interact with it.", + "options": { + "version": { + "type": "string", + "proposals": [ + "latest" + ], + "default": "latest", + "description": "Currently unused." + } + }, + "entrypoint": "/usr/local/share/ssh-init.sh", + "installsAfter": [ + "neonxp.ru/devcontainers/devcontainers-features-common-utils.tgz" + ] + } + ] +} \ No newline at end of file diff --git a/static/devcontainers/devcontainer-feature-common-utils.tgz b/static/devcontainers/devcontainer-feature-common-utils.tgz new file mode 100644 index 0000000000000000000000000000000000000000..f3516b7bed3b9da66c49016fc49be1eadc58e05d GIT binary patch literal 46592 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 literal 0 HcmV?d00001 diff --git a/static/devcontainers/devcontainer-feature-git.tgz b/static/devcontainers/devcontainer-feature-git.tgz new file mode 100644 index 0000000000000000000000000000000000000000..2908699b4649beb8f833f971f3d7911b066a3385 GIT binary patch literal 12288 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 literal 0 HcmV?d00001 diff --git a/static/devcontainers/devcontainer-feature-go.tgz b/static/devcontainers/devcontainer-feature-go.tgz new file mode 100644 index 0000000000000000000000000000000000000000..d55a8fc51d99d0fa1f4b6a1ce5b20e78e71389b1 GIT binary patch literal 16384 zcmeHOeN)@U*3aMm6pQc_lSGnD638Wwo6^Lk%q5Tkl9@Y!Izn2@DzesBF9r(!?$7V+ zYULHSY0@@*?%W4=YKzs`vuDryIlFP(N8kL@Znw9#Ua&{)c4zBF+x*2F`C*Sb&tKrP z(SF|PJZg6~Hn%$L(Ti_R85StA+)F`P!bNg5{^Kj^jp*M$j_EI(Y4X&3HWzT*gTs^F zu`>$H(ZBW?EZN+AZpvNjfn?URHr|=^wL8x{ZPJs!mW;*N{-4Xg(O6w&hsW%=7>`Ao zHyS6yC}TfyFE3KgvY{yAfL)68f{BEs+~-NoCOpj|kz`B^*js)cd5Qbsyh!rGKKC*n zupr9vG&(PG33M6dLzWLY`|OSL&ur}Z7hcHO$V>2(vM7N8#xW0^M&mQ)4?i;ykn(>Q zQ3_nSVEl^vMa~tD65JuU%ul0n?lcw)_F?o(IN-QPy`8u3df(Ck+;9J#%?@J2UHgCW z?7{xOM1J?dm^?L~%{h%#wkudG6zh$~o-)OZM!Y0oz8H;Q_4o^>97lP?Gl%UIxv&GC zb3e~m?BzVG9DZ)9J?3(7;1zMsK6-J1zZzK#bJQFE{GlU28h(r1{{8h;T zK$06wLOhgw!U`-Dv6qB?v>zq;N99NXpr7DTHGmxhg8bio_{e*|K?oD0=r^z2`6|Xf z9eu&fLZ?yo*$dC?M9=2AacIVWat`1P_0WZV;(7L$e}V& z(tr(8F_IzVlc`O1sZ0*3;8|;!=i_YKbwk9g;@p7&EYrR7Se&~fXr!B^J~XigSHrsQ zFt!r}%nJgTkVw3kB_KB=(R%E&PQN}o{r`(V<}4@NbQ6E-`F{Vu@$AK%|KHkbKluMY z#dDf$`h4@*L|l5>D1aliLSa2sp0{*oG}v)AoDDsmcq2}OyA@<0{9*)0D80{zqkVe& zRW1-%NxWFNmK8t&&wG#a5I=ImpY?f|ttg*8*ydbZe6Nh^w_RDKcIK zTD)5z>?-ok$e?*=mDHv+qN;SKmrQDlS-XcvhleK^v)m#}-B|cujQC@y1wh{Koct_7 z>MyEcbEbP9CEFCi=(l-8FjGaO=8*4=5x{EuvX1|C+<$*^wDYE?U`vIwGSq5mlwTwH zs!zZRgwt`iNU*m7GP$5WQRj_21LRcosj4;Oq(v=OW%a*w%*||-w%U}lW=9+m8ZeDjSqA-GU#LLei1BqAg~Ob+{B`y&@>7wCL5}ehO(~gKpzw@iCV{9sl<{;z zEu&SoAE75jU8e$7W-2rMcY7y#*g>_%S(T3nXQYwKP%2+U=e6cMtm?dq>B6hX-A& zc~d@a+d8vA^w>Sz-#OTQv$wx@aALxm=p@6ZD8(;x<@Y$S2}n1pG22gfHn`}?%#lf%RPW14<< z46`VEAaJl$E8FGer4tGf#$2izRIIp4ITFGs7b%({F1Xa+eZSlPXYXJA4@Z05Ds2wp zxrwfv-p`^iK}Vr~!LOZhagOyeo--R=6c|y=y@VCxMml14I$-X^LwXRMyJ)-OH_J2k zaib9p*e7N+TT#I5V%=hP!daW0y&}U&WD3Ilp#Vy@b}aRVjgSqobI#HtVJNFpA#w-3 z8#ITDKs?3wQ)-2vx@8uzPy$#~++K?!CH=kNsVvIRIV?%yp*>(h^m)q`?wVTpD#}@> zF^Fh8y(FU!bUyTQ7K<=S(2VABoUsr)rgpL~QuL#9G?dX_#9f2!svE1B+i#OI+gUs>H~3o2_if?AT{( z5~fKDtgXAJ@?mPR?|&b;KOBjGJ-PaQNU-58I&J9)>5|-^H>R2*jj%s75fYn(Avdk% zTB$Zj=`yLz7CU3Nw^Hg0-YQkEDS)<)uB9@k_lL*Fdq3_g3pwt#bPmj{gi>K3aU%>Id4+ZJ1EKI?Wdcmwj$*J^gAYb67`EV~TWt#zpbf#|XE{dXNh(PMS_zvfr-b9r^_l(32&v^oyKtQ z&NNV0E~D(}rzj+Q5=CBFPFdE{F^&iILMaYog2LKSyK9l2fgicWW6aJ)hU^IECFt7=H|We#3x zcgY~dVoYpEI2LIMl%Z_g818%tAS&<_9XZqSFM*8nY+l2N#R2zY z5AMPavE{mD5^uCVn>>>{A94?gMZ!A9w&o;HIm?r}GW^l?6#sk790^XlpT^hBC9@A)6|st!hP{c zVn#BC4k%(LLfl#vx7E!_>I2fyOfv@4y zOt^b_Z($bY@OFg-v*i@OH zzU}?Ew{y_{>FDs_q<8SPi?E0c3&&o59!+Fvu%`}o85~3Wl;OV9QwHybydB$2YbUg{ z=TVeV!hC1nax(Kh+vjN>4I&>oD3bA{7>65#l7&y6u+aBWIG_8QRE^?_#|1Kqi;&9F zK@?Jsy27YsPOIOSnbkQ?&}C7u3(5Pj$mq}+nX5mPrFyBy}1gj%0^wD z8mAVbEWa`oFutnZP(w16C&(uRYE|+kdi6?zc=QgprfvZ=n!J2G2b_-X06*I(fwvx)55vKtX_L)Z zFA}|exp^1yvzMFtHD)X8Yptxa9fQ_8yDCtt$?HRC>b@!+3Bx{k=J{lMTK{%MqZoPF z1w&o1q0|9tq{@IW6~!2ID~}G3_ls(oqjb0@hnKUc_OzjZ^4Nhig~~vxv22goyX83f zZ=DyTP#;|c5u)^%hAUm59s>nvV~FZIs_UVR%Gw(FI3H2(E4`N48yy@=T@S}0L-n7@)8mOiL>P-WMz0$cZZx6` z70Q>(%60eP!~5Nz52@+l=A$wFZ%d0+PP5`c^QMASNuw%Jw@|&!zk&~e$2;DqjJ1vx zofbOyq3#56s@~oJ6NxgS-~Kl|TtwT0>}zxx7}P$f7h$~>mq{$VfcA*17K>z11p*_t zAaBR)fk`UbUT{@Th-j|cH08mJNJBTEgOr8XW%tEy-kA0}Em5g`QS|InA>3`gmZTdw z1?dhLQh_LiSsLod*z}g!z(bEBFrwTlJAqE1@Khx!l9em1X4(P9Jd=U$5{?!Q)00Tx zo>bcgM>LdvSqx6zhn*=xEx7gs|HE`NIB+DCUO>k(^jMJu2;ATyA=1ZSH2pd9enqil zq=uDI8Fr$rTlCo4FDh9_ihQe_%-Wifm7(MD73khq=#b)-RlpL&vW}u(ll8HuaaQXH1wc4u8RU+4{e=41zM-AD;f9Xyb1N^@55 zjG+%N#D!{{Q(`b{BFK9;DA6X7C^F<0n5#EhZHllg?<>rcV_NT5#A;0}6(p)Y*CVZ# z=2}-j%rRv#=a=x85Pv-v=L!2#JP?Z}{ElSGDuxglkA`=mH!8}*v5<>h=mE_{`)_ru zCDHe->3ErMsssfg=Z`ydLT3ak8wMK`wIdVrOx)% zZ)i$WB&?7z`%Nv|C{q*LrmH4nI^!NA1|)gbRgE>>^sghSrP<*BHxkG|;g0^P@(w4G-!opyO8?}QfIn;qXd zc}7Pr!UY1b)C~$Fc9p^-{SgFI;up)QJ zF^_)kK+U!@3c-G~smV=F_)@TtZr;Wdj+jH=L_-iymVysJ-VjS86@~&+|7t1d(7X0J z&(Dj@ll%9sC30egcfE9yf61emawc;4bfzeOD{$pv4Wa!ivLUq+5*Nu|T*8&PH7Wbu zb2Sy)=9`d8Rm-A+JeIogLAjw6VU-Nl4{$1fEN#iW?jlv8%7#m$QTl3}H`1Ze!n0P> zW6FAga7&y%dLGImB{t2Xw~!kFg*NpnYeOm&3Y}k_Iw~7# z>4){#NZ{(Vj0`P$yPZzw-Qn90`@JrVn%>Z70bSTo^;$_9a@Dl_4|T6|WN zD`(|L>b|*7*C@bH<-tG@+;t`=l_`*Uim$VKnTF1FsFy-6Yx5aKU8hT-t}L6jV59`P zm`gpJxl6Z7EdaU=fe9w( zT?gO@pQKMNYusKwNj8?TXx+QxVuNfnq6Z|;o7;5{V7HlCEPRrIepsf7L5lWkFi?A0 jTedd5g|{!1V!TD>wqiZpMl|oCJv={f;DG~wKL`F7b&SIH literal 0 HcmV?d00001 diff --git a/static/devcontainers/devcontainer-feature-hugo.tgz b/static/devcontainers/devcontainer-feature-hugo.tgz new file mode 100644 index 0000000000000000000000000000000000000000..56d722a8e9fa450d1a8483d98d4e9b8cfbb8b515 GIT binary patch literal 10752 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 b1h!;V?><)V!QDOIN#ITbcM|xkN#K6~{+@i1 literal 0 HcmV?d00001 diff --git a/static/devcontainers/devcontainer-feature-node.tgz b/static/devcontainers/devcontainer-feature-node.tgz new file mode 100644 index 0000000000000000000000000000000000000000..489cef8520532cfd0f993997dd67ad7a61ca524b GIT binary patch literal 18944 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 literal 0 HcmV?d00001 diff --git a/static/devcontainers/devcontainer-feature-php.tgz b/static/devcontainers/devcontainer-feature-php.tgz new file mode 100644 index 0000000000000000000000000000000000000000..298ad96a741b9ce04b714c5872e95b86ae8e4e75 GIT binary patch literal 16896 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 literal 0 HcmV?d00001 diff --git a/static/devcontainers/devcontainer-feature-python.tgz b/static/devcontainers/devcontainer-feature-python.tgz new file mode 100644 index 0000000000000000000000000000000000000000..956fee7dba0cb063a07543b007d5918fa76dc6c1 GIT binary patch literal 28160 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 KPJ#a{1^xvSE9NHv literal 0 HcmV?d00001 diff --git a/static/devcontainers/devcontainer-feature-sshd.tgz b/static/devcontainers/devcontainer-feature-sshd.tgz new file mode 100644 index 0000000000000000000000000000000000000000..c7de0eccf2bee0506e92ff3267a31d7736184e2c GIT binary patch literal 17920 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 literal 0 HcmV?d00001