# 💚 GUIA DE INSTALAÇÃO DO PROJETO BASE WEB COM DOCKER (em construção) 💚 <br/> ## 1. đŸ’» Instalação do Docker > :warning: Testado apenas no Linux Mint atĂ© o momento. ### 1.1 Atualize o Ă­ndice de pacotes: ``` sudo apt update ``` ### 1.2 Instale os pacotes necessĂĄrios para permitir que o `apt` utilize um repositĂłrio sobre HTTPS: ``` sudo apt install apt-transport-https ca-certificates curl software-properties-common ``` ### 1.3 adicione a chave GPG para o repositĂłrio oficial do Docker: ``` curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - ``` ### 1.4 Adicione o repositĂłrio do Docker Ă s fontes do APT: ``` sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable" ``` ### 1.5 Atualize o Ă­ndice de pacotes novamente: ``` sudo apt update ``` ### 1.6 Instale o Docker ``` sudo apt install docker-ce ``` ### 1.7 Para verificar se o Docker foi instalado corretamente, execute: ``` sudo docker --version ``` <br/> ## 2. đŸ’» Gerenciando o Docker como um usuĂĄrio nĂŁo-root > :warning: Esta ainda nĂŁo Ă© a melhor solução para o problema de permissĂ”es do Docker. ### 2.1 Crie o grupo Docker (caso ele ainda nĂŁo exista) ``` sudo groupadd docker ``` ### 2.2 Adicione seu usuĂĄrio ao grupo Docker ``` sudo usermod -aG docker $USER ``` ### 2.3 Ative as mudanças feitas no grupo ``` newgrp docker ``` ### 2.4 Reinicie seu computador Uma forma simples de fazer isso Ă© executando o comando `reboot` no terminal. Certifique-se de que vocĂȘ nĂŁo estĂĄ com nada pendente, como um documento sem salvar. <br/> ## 3. đŸ’» Preparando o contĂȘiner ### 3.1 Clone o repositĂłrio com o dockerfile e os scripts ``` git clone https://github.com/mTh22k/teste-front-docker.git ``` Caso vocĂȘ jĂĄ utilize SSH, Ă© possĂ­vel clonar com o comando a seguir: ``` git clone git@github.com:mTh22k/teste-front-docker.git ``` ### 3.2 Entre na pasta ``` cd teste-front-docker ``` ### 3.3 Crie a imagem do Docker com as dependĂȘncias do projeto ``` sudo docker build -t teste-front-docker . ``` ### 3.4 Crie o contĂȘiner com a imagem criada ``` sudo docker run -it -p 8000:8000 -p 9000:9000 -p 3000:3000 teste-front-docker ``` <br/> ## 4. đŸ’» Preparando o ambiente de desenvolvimento > â„č As prĂłximas etapas foram testas com o projeto da Nostrosole. ### 4.1 Clone o projeto ``` git clone https://github.com/ecomp-co/nostrosole.git; ``` Caso vocĂȘ esteja obtendo o clone com HTTPS, serĂĄ necessĂĄrio informar o seu nome de usuĂĄrio do Github e tambĂ©m seu **Personal Access Token**. Este token pode ser obtido realizando o seguinte caminho no Github: **Settings > Developer Settings > Personal Access Tokens > Tokens (classic) > Generate new token**. No campo **"Expiration"**, marque **"No expiration"** e ao definir o escopo, selecione todas as checkboxes. ### 4.2 Entre na pasta e mude para a branch `develop` ``` cd nostrosole; git checkout develop; ``` ### 4.3 Entre no backe-end e no MariaDB ``` cd back-end; service mysql start; mariadb ``` ### 4.4 Crise o banco de dados, o usuĂĄrio e atribua a ele previlĂ©gios ``` create database nostrosole; create user 'user1'@localhost identified by '123mudar'; grant all privileges on nostrosole.* to 'user1'@localhost; flush privileges; exit ``` ### 4.5 Copie o arquivo `.env` e o edite ``` cp .env.example .env vi .env ``` ### 4.6 Mude as linhas do cĂłdigo Com base nos passos anteriores, edite o **nome do banco de dados**, o **usuĂĄrio** e sua **senha**. ``` DB_DATABASE=nostrosole DB_USERNAME=user1 DB_PASSWORD=123mudar ``` > đŸ€– Dica: caso esteja usando Vi, Vim ou NeoVim, pressione a tecla `INSERT` para editar o arquivo. Para salvar as modificaçÔes, pressione `ESC` e digite `:x`. ### 4.7 Retorna Ă  pasta `html`, e execute o script para rodar o projeto ``` cd ../../ ./start_services.sh ``` <br/> ## 5. đŸ’» Acessando o projeto Acesse seu `localhost:3000` no navegador para visualizar o front-end. O back-end estarĂĄ rodando em `localhost:8000`, pronto para vocĂȘ usar! đŸ„° ![Projeto no navegador](https://i.imgur.com/WfKrJjO.png) <br/> ## 6. đŸ’» Como usar os contĂȘiners ### 6.1 Voltando a um contĂȘiner ativo Se vocĂȘ nĂŁo parou a execução do seu contĂȘiner, apenas saiu dele ou desligou o PC, para voltar a ele (que ainda estĂĄ ativo), basta rodar seguir estes passos: * Descubra o ID do seu contĂȘiner ``` sudo docker ps -a ``` * Entre no contĂȘiner para poder rodar o script novamente ``` sudo docker exec -it <ID_do_ContĂȘiner> /bin/bash ``` ### 6.2 Entrando em um contĂȘiner parado Se vocĂȘ parou seu contĂȘiner para ele nĂŁo ocupar mais as portas 8000 e 3000 com o comando `docker stop <ID_do_ContĂȘiner>` e deseja entrar nele novamente, basta rodar estes comandos: * Descubra o ID do seu contĂȘiner ``` sudo docker ps -a ``` * Inicie o contĂȘiner que foi parado anteriormente ``` docker start <ID_do_ContĂȘiner> ``` * Entre no contĂȘiner para poder rodar o script novamente ``` sudo docker exec -it <ID_do_ContĂȘiner> /bin/bash ``` <br/> ## 7. đŸ’» Comandos Ășteis para mexer no Docker ### 7.1 Docker build Este comando Ă© usado para construir uma **imagem Docker** a partir de um **Dockerfile**. ``` docker build -t nome-da-imagem . ``` ### 7.2 Docker run Este comando Ă© usado para executar um contĂȘiner Docker a partir de uma imagem. ``` docker run -it nome-da-imagem ``` ### 7.3 Docker ps Este comando Ă© usado para listar os contĂȘineres Docker em execução. ``` docker ps ``` ### 7.4 Docker ps -a Este comando Ă© usado para listar todos os contĂȘineres Docker, incluindo os que estĂŁo parados. ``` docker ps -a ``` ### 7.5 Docker stop Este comando Ă© usado para parar um contĂȘiner Docker em execução (o id pode ser visto com o docker `px` e `ps -a`). ``` docker stop <id_do_container> ``` ### 7.6 Docker start Este comando Ă© usado para iniciar um contĂȘiner Docker parado. ``` docker start <id_do_container> ``` ### 7.7 Docker rm Este comando Ă© usado para remover um contĂȘiner Docker. ``` docker rm <id_do_container> ``` ### 7.8 Docker rmi Este comando Ă© usado para remover uma imagem Docker. ``` docker rmi <nome_da_imagem> ``` <br/> ## 8. đŸ’» Integração com o VSCode Caso vocĂȘ ainda nĂŁo tenha o Visual Studio Code em sua mĂĄquina, Ă© possĂ­vel obtĂȘ-lo a partir da sua [pĂĄgina de download](https://code.visualstudio.com/download). Se jĂĄ o tiver, basta acompanhar o restante dos passos! ### 8.1 Instale a extensĂŁo "Dev Containers" * VĂĄ para a aba de extensĂ”es (ou pressione `Ctrl+Shift+X`); * Procure por [Dev Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) e instale a extensĂŁo; * Feche e abra novamente o seu VSCode. ### 8.2 Abra o projeto dentro do contĂȘiner * No menu lateral do VSCode, clique em **"Remote Explorer"**; * Em **"Dev Containers"**, vocĂȘ encontrarĂĄ o nosso contĂȘiner; * Passe o mouse sobre o contĂȘiner e clique no botĂŁo **"Attach in New Window"**: ![Abrindo o contĂȘiner do projeto em uma nova janela](https://i.imgur.com/uxRrOsT.png) * Talvez nenhum projeto estarĂĄ aberto, entĂŁo clique no Ă­cone de **"Explorer"** e no botĂŁo **"New Folder"**; * Na barra de pesquisa, digite o caminho da pasta do projeto. Exemplo: ``` /var/www/html/nostrosole ``` * Clique em **"Ok"** para abri-lo. <br/> ## 9. đŸ’» ReferĂȘncias - [Como Instalar e Utilizar o Docker no Ubuntu 20.04](https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-20-04-pt) (artigo) - [Gerenciar seus tokens de acesso pessoal](https://docs.github.com/pt/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens) (guia do Github) - [Como trabalhar com Docker no VSCode](https://youtu.be/y3s47QItVQc?si=JzvQAvfN-qiuRfIV) (vĂ­deo) ###### by Marquesini e Andrieli 💚 #quaqua