_image.jpg)
Ambiente dev com Windows/WSL - FullCycle
2022-10-28
Voltar
Para instalação desse sistema temos como guia o repositório no GitHub indicado:
https://github.com/codeedu/wsl2-docker-quickstart
Para habilitar o WSL no Windows devemos seguir os seguinte passos:
Primeiramente no PowerShell como administrador habilitar o VM do Windows:
https://github.com/codeedu/wsl2-docker-quickstart
Para habilitar o WSL no Windows devemos seguir os seguinte passos:
Primeiramente no PowerShell como administrador habilitar o VM do Windows:
$ dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart $ dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
Em seguida podemos instalar o pacote WSL2 baixado diretamente da Microsoft no link WSL2.
Com isso devemos habilitar o WSL2 no Windows:
Com isso devemos habilitar o WSL2 no Windows:
$ wsl --set-default-version 2
Caso já haja alguma distribuição instalada na versão 1 podemos alterá-la com o comando:
$ wsl --set-version <distribution name> 2
Para verificar as distribuições instaladas e a versão do WSL utilizamos o comando:
$ wsl -l -v
Podemos verificar as distribuições disponíveis para instalação em linha de comando com o comando:
$wsl -l -o
As versões disponíveis para instalação no momento são:
NAME FRIENDLY NAME
NAME FRIENDLY NAME
- Ubuntu Ubuntu
- Debian Debian GNU/Linux
- kali-linux Kali Linux Rolling
- openSUSE-42 openSUSE Leap 42
- SLES-12 SUSE Linux Enterprise Server v12
- Ubuntu-16.04 Ubuntu 16.04 LTS
- Ubuntu-18.04 Ubuntu 18.04 LTS
- Ubuntu-20.04 Ubuntu 20.04 LTS
A melhor versão para ser instalada é a "Ubuntu" sem número de versão pois é a mais integrada com o Windows. Ela pode ser instalada pela linha de comando ou através da MSStore.
Outro aplicativo a ser instalado pela MSStore é o Windows Terminal que permite a execução de diversos tipos de terminal.
Os parâmetros de sistema do WSL podem ser definidos em um arquivo que deve ser criado no diretório C:\Users\<nome_do_usuario>\ com o nome .wslconfig .
Esse arquivo pode definir valores específicos para memória, processador e swap. Um exemplo de configuração para esse arquivo é:
Outro aplicativo a ser instalado pela MSStore é o Windows Terminal que permite a execução de diversos tipos de terminal.
Os parâmetros de sistema do WSL podem ser definidos em um arquivo que deve ser criado no diretório C:\Users\<nome_do_usuario>\ com o nome .wslconfig .
Esse arquivo pode definir valores específicos para memória, processador e swap. Um exemplo de configuração para esse arquivo é:
[wsl2] memory=8GB processors=4 swap=2GB
Mais informações sobre as configurações do WSL ver o site Configurações Avançadas no WSL
Para a instalação do Docker podemos verificar a documentação no site Docker Docs. Importante: caso o Docker Desktop esteja instalado na máquina é necessário parar o serviço antes da instalação.
O passo-a-passo para a instalação é o seguinte:
Para a instalação do Docker podemos verificar a documentação no site Docker Docs. Importante: caso o Docker Desktop esteja instalado na máquina é necessário parar o serviço antes da instalação.
O passo-a-passo para a instalação é o seguinte:
$ sudo apt-get update $ sudo apt-get install \ ca-certificates \ curl \ gnupg \ lsb-release $ sudo mkdir -p /etc/apt/keyrings $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg $ echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null $ sudo apt-get update $ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin $ sudo service docker start $ sudo docker run hello-world
Após isso executar a seção Linux Post-Install substituindo o $USER pelo nome de usuário local.
$ sudo groupadd docker $ sudo usermod -aG docker $USER
Tive alguns problemas para executar o Docker.
Procurei uma solução e o que funcionou nesse caso foi o seguinte:
Para verificar o log do Docker devemos verificar o arquivo em /var/log/docker.log
Identificado o erro, verifiquei que era na inicialização das placas de rede.
A solução encontrada nesse repositório do GitHub.
Criamos duas instruções no iptables:
Procurei uma solução e o que funcionou nesse caso foi o seguinte:
Para verificar o log do Docker devemos verificar o arquivo em /var/log/docker.log
Identificado o erro, verifiquei que era na inicialização das placas de rede.
A solução encontrada nesse repositório do GitHub.
Criamos duas instruções no iptables:
$ sudo update-alternatives --set iptables /usr/sbin/iptables-legacy $ sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
Com isso foi possível iniciar o serviço do Docker.
Devemos também instalar o docker-compose. Para isso utilizamos:
Devemos também instalar o docker-compose. Para isso utilizamos:
$ sudo apt-get install docker-compose
Para o terminal, instalar o oh-my-zsh. Esse shell tem vários plugin que permitem uma maior produtividade.
Alguns desses plugins são fast-sintax-highlighting, zsh-autosuggestions e zsh-completions.
Para instalação do oh-my-zsh primeiro devemos instalar o zsh:
Alguns desses plugins são fast-sintax-highlighting, zsh-autosuggestions e zsh-completions.
Para instalação do oh-my-zsh primeiro devemos instalar o zsh:
$ sudo apt-get install zsh
Em seguida utilizamos os comandos do site do framework Oh My Zsh
$ sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
Um bom tutorial de instalação pode ser encontrado em Medium
Para os complementos sugeridos temos os seguintes links:
https://github.com/zdharma/fast-syntax-highlighting
Para os complementos sugeridos temos os seguintes links:
https://github.com/zdharma/fast-syntax-highlighting
$ git clone https://github.com/z-shell/F-Sy-H.git \ ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/F-Sy-H
$ git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
$ git clone https://github.com/zsh-users/zsh-completions ${ZSH_CUSTOM:-${ZSH:-~/.oh-my-zsh}/custom}/plugins/zsh-completions
Com esses tres complementos instalados devemos incluir as seguintes linhas no arquivo .zshrc (verificar a documentação dos plugins em caso de dúvidas).
pugins=(... F-Sy-H zsh-autosuggestions) fpath+=${ZSH_CUSTOM:-${ZSH:-~/.oh-my-zsh}/custom}/plugins/zsh-completions/src
Por fim uma lista de extensões sugeridas para o VSCode:
- adpyke.codesnap
- amiralizadeh9480.laravel-extra-intellisense
- batisteo.vscode-django
- bmewburn.vscode-intelephense-client
- bradlc.vscode-tailwindcss
- bungcip.better-toml
- ChakrounAnas.turbo-console-log
- christian-kohler.npm-intellisense
- christian-kohler.path-intellisense
- dbaeumer.vscode-eslint
- donjayamanne.githistory
- DotJoshJohnson.xml
- dzhavat.css-flexbox-cheatsheet
- eamodio.gitlens
- esbenp.prettier-vscode
- firsttris.vscode-jest-runner
- GitHub.copilot
- GitHub.vscode-pull-request-github
- golang.go
- googlecloudtools.cloudcode
- GraphQL.vscode-graphql
- GraphQL.vscode-graphql-execution
- GraphQL.vscode-graphql-syntax
- Gruntfuggly.todo-tree
- humao.rest-client
- ionutvmi.path-autocomplete
- jebbs.plantuml
- mblode.twig-language
- MehediDracula.php-constructor
- ms-azuretools.vscode-docker
- ms-kubernetes-tools.vscode-kubernetes-tools
- ms-python.python
- ms-python.vscode-pylance
- ms-toolsai.jupyter
- ms-toolsai.jupyter-renderers
- ms-toolsai.vscode-jupyter-cell-tags
- ms-toolsai.vscode-jupyter-slideshow
- ms-vscode.live-server
- ms-vscode.makefile-tools
- ms-vscode.vscode-typescript-next
- ms-vsliveshare.vsliveshare
- naumovs.color-highlight
- neilbrayfield.php-docblocker
- oderwat.indent-rainbow
- Orta.vscode-jest
- phproberto.vscode-php-getters-setters
- Prisma.prisma-insider
- quicktype.quicktype
- redhat.vscode-yaml
- SonarSource.sonarlint-vscode
- sourcery.sourcery
- steoates.autoimport
- streetsidesoftware.code-spell-checker
- streetsidesoftware.code-spell-checker-portuguese-brazilian
- Tim-Koehler.helm-intellisense
- VisualStudioExptTeam.intellicode-api-usage-examples
- VisualStudioExptTeam.vscodeintellicode
- vivaxy.vscode-conventional-commits
- Vue.volar
- wix.vscode-import-cost
- xdebug.php-debug
- xyz.local-history
- Zignd.html-css-class-completion
- zxh404.vscode-proto3
Essa lista pode ser obtida em https://github.com/argentinaluiz/my-vscode-settings/tree/main/vscode-settings