Skip to content

Commit

Permalink
updating devcontainer
Browse files Browse the repository at this point in the history
  • Loading branch information
robinmordasiewicz committed Mar 13, 2024
1 parent 3ed0925 commit d2a7c3f
Show file tree
Hide file tree
Showing 2 changed files with 148 additions and 0 deletions.
108 changes: 108 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
{
"name": "devops-toolkit",
"image": "mcr.microsoft.com/devcontainers/base:ubuntu22.04",
"customizations": {
"vscode": {
"extensions": [
"Continue.continue",
"duniul.dircolors",
"esbenp.prettier-vscode",
"HashiCorp.terraform",
"MarkLarah.pre-commit-vscode",
"ms-azuretools.vscode-docker",
"MS-CST-E.vscode-devskim",
"ms-python.python",
"ms-toolsai.vscode-jupyter-powertoys",
"ms-vscode.azure-account",
"ms-azuretools.vscode-azureterraform"
],
"settings": {
"terminal.integrated.profiles.linux": {
"bash": {
"path": "/bin/bash"
},
"zsh": {
"path": "/usr/bin/zsh"
}
},
"terminal.integrated.defaultProfile.linux": "zsh",
"files.eol": "\n",
"files.insertFinalNewline": true,
"files.trimFinalNewlines": true,
"files.trimTrailingWhitespace": true,
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.organizeImports": true
}
}
}
},
"features": {
"ghcr.io/devcontainers/features/aws-cli:1": {},
"ghcr.io/devcontainers/features/azure-cli:1": {},
"ghcr.io/devcontainers/features/common-utils:2": {
"configureZshAsDefaultShell": true
},
"ghcr.io/devcontainers/features/conda:1": {
"addCondaForge": true
},
"ghcr.io/devcontainers/features/docker-outside-of-docker:1": {},
"ghcr.io/devcontainers/features/github-cli:1": {},
"ghcr.io/devcontainers/features/python:1": {
"installTools": true,
"version": "3.11"
},
"ghcr.io/devcontainers/features/terraform:1": {
"installTFsec": true,
"installTerraformDocs": true
},
"ghcr.io/devcontainers-contrib/features/act:1": {},
"ghcr.io/devcontainers-contrib/features/actionlint:1": {},
"ghcr.io/devcontainers-contrib/features/ansible:2": {},
"ghcr.io/devcontainers-contrib/features/apt-packages:1": {
"packages": [
"software-properties-common",
"iputils-ping",
"cmake",
"libsecret-1-dev",
"yelp-tools",
"libyelp-dev",
"libgif-dev",
"autoconf",
"nodejs"
]
},
"ghcr.io/devcontainers-contrib/features/black:2": {},
"ghcr.io/devcontainers-contrib/features/curl-apt-get:1": {},
"ghcr.io/devcontainers-contrib/features/devcontainers-cli:1": {},
"ghcr.io/devcontainers-contrib/features/exa:1": {},
"ghcr.io/devcontainers-contrib/features/fzf:1": {},
"ghcr.io/devcontainers-contrib/features/markdownlint-cli2:1": {},
"ghcr.io/devcontainers-contrib/features/mkdocs:2": {},
"ghcr.io/devcontainers-contrib/features/tmux-apt-get:1": {},
"ghcr.io/devcontainers-contrib/features/vscode-cli:1": {},
"ghcr.io/devcontainers-contrib/features/vscode-server:1": {},
"ghcr.io/devcontainers-contrib/features/wget-apt-get:1": {},
"ghcr.io/devcontainers-contrib/features/yamllint:2": {},
"ghcr.io/devcontainers-contrib/features/zsh-plugins:0": {
"plugins": "zsh-syntax-highlighting zsh-autosuggestions ubuntu jsontools gh common-aliases conda-zsh-completion",
"omzPlugins": "https://github.com/zsh-users/zsh-autosuggestions.git https://github.com/zsh-users/zsh-syntax-highlighting.git https://github.com/conda-incubator/conda-zsh-completion.git"
},
"ghcr.io/devcontainers-community/npm-features/prettier:1": {},
"ghcr.io/guiyomh/features/vim:0": {},
"ghcr.io/joshuanianji/devcontainer-features/github-cli-persistence:1": {},
"ghcr.io/jsburckhardt/devcontainer-features/gitleaks:1": {},
"ghcr.io/jungaretti/features/make:1": {},
"ghcr.io/lukewiwa/features/shellcheck:0": {},
"ghcr.io/mikaello/devcontainer-features/modern-shell-utils:1": {},
"ghcr.io/prulloac/devcontainer-features/pre-commit:1": {},
"ghcr.io/schlich/devcontainer-features/powerlevel10k:1": {},
"ghcr.io/stuartleeks/dev-container-features/azure-cli-persistence:0": {}
},
"postStartCommand": "",
"postCreateCommand": "./.devcontainer/postCreateCommand.sh",
"appPort": [],
"containerEnv": {},
"runArgs": ["--name", "devops-toolkit"],
"mounts": []
}
40 changes: 40 additions & 0 deletions .devcontainer/postCreateCommand.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
#!/bin/bash
#

sudo sh -c 'echo "vscode ALL=(ALL:ALL) NOPASSWD:ALL" > /etc/sudoers.d/vscode'

if ! [ -d /etc/apt/keyrings ]; then
sudo mkdir -p /etc/apt/keyrings
fi

if ! [ -f /etc/apt/keyrings/gierens.gpg ]; then
wget -qO- https://raw.githubusercontent.com/eza-community/eza/main/deb.asc | sudo gpg --dearmor -o /etc/apt/keyrings/gierens.gpg
sudo chmod 644 /etc/apt/keyrings/gierens.gpg
fi

if ! [ -f /etc/apt/sources.list.d/gierens.list ]; then
echo 'deb [signed-by=/etc/apt/keyrings/gierens.gpg] http://deb.gierens.de stable main' | sudo tee /etc/apt/sources.list.d/gierens.list
sudo chmod 644 /etc/apt/sources.list.d/gierens.list
fi

sudo apt update
sudo apt-get -y upgrade
sudo apt-get -y install eza
sudo apt -y autoremove

LAZYGIT_VERSION=$(curl -s "https://api.github.com/repos/jesseduffield/lazygit/releases/latest" | grep -Po '"tag_name": "v\K[^"]*')
curl -Lo lazygit.tar.gz "https://github.com/jesseduffield/lazygit/releases/latest/download/lazygit_${LAZYGIT_VERSION}_Linux_x86_64.tar.gz"
tar xf lazygit.tar.gz lazygit
rm lazygit.tar.gz
sudo install lazygit /usr/local/bin
rm lazygit

sudo -H env PATH="${PATH}" npm install -g npm@latest
sudo -H env PATH="${PATH}" npm install -g opencommit

echo "chown takes a few minutes, be patient."
sudo chown -R vscode:vscode /home/vscode/

oco hook set

pre-commit install

0 comments on commit d2a7c3f

Please sign in to comment.