{"id":23459428,"url":"https://github.com/devkimchi/devcontainers-dotnet","last_synced_at":"2025-04-14T04:14:57.440Z","repository":{"id":60439408,"uuid":"542651654","full_name":"devkimchi/devcontainers-dotnet","owner":"devkimchi","description":"This is the template repository that contains the devcontainer settings for .NET app development","archived":false,"fork":false,"pushed_at":"2023-07-01T01:16:58.000Z","size":182,"stargazers_count":12,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-14T04:14:52.413Z","etag":null,"topics":["hactoberfest"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/devkimchi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-09-28T15:08:50.000Z","updated_at":"2023-08-28T23:14:10.000Z","dependencies_parsed_at":"2024-04-28T02:19:58.213Z","dependency_job_id":"086c9daa-3aa3-4d94-981a-a440817dc96d","html_url":"https://github.com/devkimchi/devcontainers-dotnet","commit_stats":null,"previous_names":["devkimchi/devcontainers-dotnet"],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devkimchi%2Fdevcontainers-dotnet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devkimchi%2Fdevcontainers-dotnet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devkimchi%2Fdevcontainers-dotnet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devkimchi%2Fdevcontainers-dotnet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/devkimchi","download_url":"https://codeload.github.com/devkimchi/devcontainers-dotnet/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248819408,"owners_count":21166477,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hactoberfest"],"created_at":"2024-12-24T06:14:30.548Z","updated_at":"2025-04-14T04:14:57.414Z","avatar_url":"https://github.com/devkimchi.png","language":"Shell","readme":"# devcontainers for .NET #\n\nThis is the template repository that contains the devcontainer settings for .NET app development.\n\n\n## Getting Started ##\n\nIf you want to use this devcontainer settings, you can create a new repository with this template repository, by clicking the \"*Use this template*\" button.\n\n![Use this template](./images/use-this-template.png)\n\n\n## Options \u0026ndash; `devcontainer.json` ##\n\n### Base Image ###\n\nBy default, this devcontainer settings uses the base image of Ubuntu 22.04 LTS (jammy).\n\n```jsonc\n\"build\": {\n  \"dockerfile\": \"./Dockerfile\",\n  \"context\": \".\",\n  \"args\": {\n    \"VARIANT\": \"6.0-jammy\"\n  }\n}\n```\n\nHowever, there is currently a bug on the [C# extension v1.25.0](https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csharp) for Razor support on Ubuntu 22.04 LTS (jammy). Therefore, if you need Razor support, build your devcontainer with Ubuntu 20.04 LTS (focal).\n\n```jsonc\n\"build\": {\n  \"dockerfile\": \"./Dockerfile\",\n  \"context\": \".\",\n  \"args\": {\n    // Use this only if you need Razor support, until OmniSharp supports .NET 6 properly\n    \"VARIANT\": \"6.0-focal\"\n  }\n}\n```\n\n### Features ###\n\n1. If you want to install Azure CLI, uncomment the section under the `features` attribute.\n\n    ```jsonc\n    \"features\": {\n      ...\n      // Uncomment the below to install Azure CLI\n      \"ghcr.io/devcontainers/features/azure-cli:1\": {\n        \"version\": \"latest\"\n      }\n      ...\n    },\n    ```\n\n1. If you want to install GitHub CLI, uncomment the section under the `features` attribute.\n\n    ```jsonc\n    \"features\": {\n      ...\n      // Uncomment the below to install GitHub CLI\n      \"ghcr.io/devcontainers/features/github-cli:1\": {\n        \"version\": \"latest\"\n      }\n      ...\n    },\n    ```\n\n1. If you want to install node.js, uncomment the section under the `features` attribute.\n\n    ```jsonc\n    \"features\": {\n      ...\n      // Uncomment the below to install node.js\n      \"ghcr.io/devcontainers/features/node:1\": {\n        \"version\": \"lts\",\n        \"nodeGypDependencies\": true,\n        \"nvmInstallPath\": \"/usr/local/share/nvm\"\n      }\n      ...\n    },\n    ```\n\n1. If you want to add more features, find [this repository: devcontainer features](https://github.com/devcontainers/features).\n\n\n### Extensions ###\n\n1. There are optional extensions that you can selectively install, under the `customizations.vscode.extensions` attribute. You can simply uncomment each line to enable or comment out one to disable.\n\n    ```jsonc\n    \"customizations\": {\n      \"vscode\": {\n        \"extensions\": [\n          // Recommended extensions - GitHub\n          \"cschleiden.vscode-github-actions\",\n          \"GitHub.vscode-pull-request-github\",\n  \n          // Recommended extensions - Azure\n          \"ms-azuretools.vscode-bicep\",\n  \n          // Recommended extensions - Collaboration\n          \"eamodio.gitlens\",\n          \"EditorConfig.EditorConfig\",\n          \"MS-vsliveshare.vsliveshare-pack\",\n          \"streetsidesoftware.code-spell-checker\",\n  \n          // Recommended extensions - .NET\n          \"Fudge.auto-using\",\n          \"jongrant.csharpsortusings\",\n          \"kreativ-software.csharpextensions\",\n  \n          // Recommended extensions - Power Platform\n          \"microsoft-IsvExpTools.powerplatform-vscode\",\n  \n          // Recommended extensions - Markdown\n          \"bierner.github-markdown-preview\",\n          \"DavidAnson.vscode-markdownlint\",\n          \"docsmsft.docs-linting\",\n          \"johnpapa.read-time\",\n          \"yzhang.markdown-all-in-one\",\n\n          ...\n        ],\n        ...\n      }\n    }\n    ```\n\n1. Alternatively, you can add as many extra extensions as you like, from [Visual Studio Code Marketplace](https://marketplace.visualstudio.com/VSCode).\n\n\n### Settings ###\n\n1. There are customisation options for your Codespaces settings, under the `customizations.vscode.settings` attribute. You can simply uncomment each item to enable or comment out one to disable.\n\n    ```jsonc\n    \"customizations\": {\n      \"vscode\": {\n        \"settings\": {\n          // Uncomment if you want to use zsh as the default shell\n          \"terminal.integrated.defaultProfile.linux\": \"zsh\",\n          \"terminal.integrated.profiles.linux\": {\n            \"zsh\": {\n              \"path\": \"/usr/bin/zsh\"\n            }\n          },\n\n          // Uncomment if you want to use CaskaydiaCove Nerd Font as the default terminal font\n          \"terminal.integrated.fontFamily\": \"CaskaydiaCove Nerd Font\",\n\n          // Uncomment if you want to disable the minimap view\n          \"editor.minimap.enabled\": false,\n\n          // Recommended settings for the explorer pane\n          \"explorer.sortOrder\": \"type\",\n          \"explorer.fileNesting.enabled\": true,\n          \"explorer.fileNesting.patterns\": {\n            \"*.bicep\": \"${capture}.json\",\n            \"*.razor\": \"${capture}.razor.css\",\n            \"*.js\": \"${capture}.js.map\"\n          }\n        }\n      }\n    }\n    ```\n\n1. If you want to do more granular configurations, refer to this page, [User and Workspace Settings](https://code.visualstudio.com/docs/getstarted/settings).\n\n\n### Lifecycle ###\n\n1. If you want to use `bash` as your main shell and want to run the shell script after the container is created:\n\n    ```jsonc\n    // Uncomment if you want to use bash in 'postCreateCommand' after the container is created\n    \"postCreateCommand\": \"/bin/bash ./.devcontainer/post-create.sh \u003e ~/post-create.log\",\n    ```\n\n1. If you want to use `zsh` as your main shell and want to run the shell script after the container is created:\n\n    ```jsonc\n    // Uncomment if you want to use zsh in 'postCreateCommand' after the container is created\n    \"postCreateCommand\": \"/usr/bin/zsh ./.devcontainer/post-create.sh \u003e ~/post-create.log\",\n    ```\n\n\n## Options \u0026ndash; `post-create.sh` ##\n\n1. If you want to install CaskaydiaCove Nerd Font, uncomment the section below.\n\n    ```bash\n    ## CaskaydiaCove Nerd Font\n    # Uncomment the below to install the CaskaydiaCove Nerd Font\n    mkdir $HOME/.local\n    mkdir $HOME/.local/share\n    mkdir $HOME/.local/share/fonts\n    wget https://github.com/ryanoasis/nerd-fonts/releases/latest/download/CascadiaCode.zip\n    unzip CascadiaCode.zip -d $HOME/.local/share/fonts\n    rm CascadiaCode.zip\n    ```\n\n    \u003e Use this option if you want to use oh-my-posh for PowerShell.\n\n1. If you want to install Azure CLI extensions, uncomment the section below.\n\n    ```bash\n    ## AZURE CLI EXTENSIONS ##\n    # Uncomment the below to install Azure CLI extensions\n    extensions=$(az extension list-available --query \"[].name\" | jq -c -r '.[]')\n    for extension in $extensions;\n    do\n        az extension add --name $extension\n    done\n    ```\n\n    \u003e Use this option with care because it will install **ALL** extensions at once.\n\n1. If you want to install Azure Bicep CLI, uncomment the section below.\n\n    ```bash\n    ## AZURE BICEP CLI ##\n    # Uncomment the below to install Azure Bicep CLI\n    az bicep install\n    ```\n\n1. If you want to install Azure Functions Core Tools, uncomment the section below.\n\n    ```bash\n    ## AZURE FUNCTIONS CORE TOOLS ##\n    # Uncomment the below to install Azure Functions Core Tools\n    npm i -g azure-functions-core-tools@4 --unsafe-perm true\n    ```\n\n1. If you want to install Azure Static Web Apps CLI, uncomment the section below.\n\n    ```bash\n    ## AZURE STATIC WEB APPS CLI ##\n    # Uncomment the below to install Azure Static Web Apps CLI\n    npm install -g @azure/static-web-apps-cli\n    ```\n\n1. If you want to install Azure Dev CLI, uncomment the section below.\n\n    ```bash\n    ## AZURE DEV CLI ##\n    # Uncomment the below to install Azure Dev CLI\n    curl -fsSL https://aka.ms/install-azd.sh | bash\n    ```\n\n    \u003e **DEPENDENCIES**: Make sure that you must get both Azure CLI and GitHub CLI installed beforehand.\n\n1. If you want to install plugins and themes for oh-my-zsh without using your dotfiles, uncomment the section below.\n\n    ```bash\n    ## OH-MY-ZSH PLUGINS \u0026 THEMES (POWERLEVEL10K) ##\n    # Uncomment the below to install oh-my-zsh plugins and themes (powerlevel10k) without dotfiles integration\n    git clone https://github.com/zsh-users/zsh-completions.git $HOME/.oh-my-zsh/custom/plugins/zsh-completions\n    git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $HOME/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting\n    git clone https://github.com/zsh-users/zsh-autosuggestions.git $HOME/.oh-my-zsh/custom/plugins/zsh-autosuggestions\n\n    git clone https://github.com/romkatv/powerlevel10k.git $HOME/.oh-my-zsh/custom/themes/powerlevel10k --depth=1\n    ln -s $HOME/.oh-my-zsh/custom/themes/powerlevel10k/powerlevel10k.zsh-theme $HOME/.oh-my-zsh/custom/themes/powerlevel10k.zsh-theme\n    ```\n\n    \u003e **DEPENDENCIES**: Make sure that you have already installed oh-my-zsh through the settings on `devcontainer.json`.\n\n1. If you want to install oh-my-zsh configurations without using your dotfiles, uncomment the section below.\n\n    ```bash\n    ## OH-MY-ZSH - POWERLEVEL10K SETTINGS ##\n    # Uncomment the below to update the oh-my-zsh settings without dotfiles integration\n    curl https://raw.githubusercontent.com/justinyoo/devcontainers-dotnet/main/oh-my-zsh/.p10k-with-clock.zsh \u003e $HOME/.p10k-with-clock.zsh\n    curl https://raw.githubusercontent.com/justinyoo/devcontainers-dotnet/main/oh-my-zsh/.p10k-without-clock.zsh \u003e $HOME/.p10k-without-clock.zsh\n    curl https://raw.githubusercontent.com/justinyoo/devcontainers-dotnet/main/oh-my-zsh/switch-p10k-clock.sh \u003e $HOME/switch-p10k-clock.sh\n    chmod +x ~/switch-p10k-clock.sh\n\n    cp $HOME/.p10k-with-clock.zsh $HOME/.p10k.zsh\n    cp $HOME/.zshrc $HOME/.zshrc.bak\n\n    echo \"$(cat $HOME/.zshrc)\" | awk '{gsub(/ZSH_THEME=\\\"codespaces\\\"/, \"ZSH_THEME=\\\"powerlevel10k\\\"\")}1' \u003e $HOME/.zshrc.replaced \u0026\u0026 mv $HOME/.zshrc.replaced $HOME/.zshrc\n    echo \"$(cat $HOME/.zshrc)\" | awk '{gsub(/plugins=\\(git\\)/, \"plugins=(git zsh-completions zsh-syntax-highlighting zsh-autosuggestions)\")}1' \u003e $HOME/.zshrc.replaced \u0026\u0026 mv $HOME/.zshrc.replaced $HOME/.zshrc\n    echo \"\n    # To customize prompt, run 'p10k configure' or edit ~/.p10k.zsh.\n    [[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh\n    \" \u003e\u003e $HOME/.zshrc\n    ```\n\n    \u003e **DEPENDENCIES**: Make sure that you uncommend the oh-my-zsh plugins and themes section before using this section.\n\n    \u003e If you want to switch the `powerlevel10k` configuration with clock or without clock, run the following shell script:\n    \u003e \n    \u003e ```bash\n    \u003e # Disable clock\n    \u003e ~/switch-p10k-clock.sh\n    \u003e \n    \u003e # Enable clock\n    \u003e ~/switch-p10k-clock.sh -c\n    \u003e ```\n\n1. If you want to install oh-my-posh for PowerShell, uncomment the section below\n\n    ```bash\n    ## OH-MY-POSH ##\n    # Uncomment the below to install oh-my-posh\n    sudo wget https://github.com/JanDeDobbeleer/oh-my-posh/releases/latest/download/posh-linux-amd64 -O /usr/local/bin/oh-my-posh\n    sudo chmod +x /usr/local/bin/oh-my-posh\n    ```\n\n1. If you want to install oh-my-posh configurations without using your dotfiles, uncomment the section below.\n\n    ```bash\n    ## OH-MY-POSH - POWERLEVEL10K SETTINGS ##\n    # Uncomment the below to update the oh-my-posh settings without dotfiles integration\n    curl https://raw.githubusercontent.com/justinyoo/devcontainers-dotnet/main/oh-my-posh/p10k-with-clock.omp.json \u003e $HOME/p10k-with-clock.omp.json\n    curl https://raw.githubusercontent.com/justinyoo/devcontainers-dotnet/main/oh-my-posh/p10k-without-clock.omp.json \u003e $HOME/p10k-without-clock.omp.json\n    curl https://raw.githubusercontent.com/justinyoo/devcontainers-dotnet/main/oh-my-posh/switch-p10k-clock.ps1 \u003e $HOME/switch-p10k-clock.ps1\n\n    mkdir $HOME/.config/powershell\n    curl https://raw.githubusercontent.com/justinyoo/devcontainers-dotnet/main/oh-my-posh/Microsoft.PowerShell_profile.ps1 \u003e $HOME/.config/powershell/Microsoft.PowerShell_profile.ps1\n\n    cp $HOME/p10k-with-clock.omp.json $HOME/p10k.omp.json\n    ```\n\n    \u003e **DEPENDENCIES**: Make sure that you uncommend the oh-my-posh installation section before using this section.\n\n    \u003e If you want to switch the `powerlevel10k` configuration with clock or without clock, run the following shell script:\n    \u003e \n    \u003e ```powershell\n    \u003e # Disable clock\n    \u003e ~/switch-p10k-clock.ps1\n    \u003e \n    \u003e # Enable clock\n    \u003e ~/switch-p10k-clock.ps1 -WithClock\n    \u003e ```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevkimchi%2Fdevcontainers-dotnet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevkimchi%2Fdevcontainers-dotnet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevkimchi%2Fdevcontainers-dotnet/lists"}