-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
8e4022e
commit 8c6e6fe
Showing
3 changed files
with
294 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,71 @@ | ||
# Docker / Docker Compose | ||
# Guia Completo de Docker e Docker-Compose | ||
|
||
## Versão | ||
|
||
| **Título** | **Alterações Feitas** | **Autor** | **Data de Hoje** | | ||
|-------------------|-----------------------------------------------| -----------| --------------- | | ||
| Dojo Docker | Subindo documento versão 1 | Mateus Maia | 09 de dezembro de 2024 | | ||
|
||
## Docker | ||
|
||
### O que é Docker? | ||
O Docker é uma plataforma de software que permite criar e gerenciar contêineres: ambientes isolados e portáteis para rodar aplicações. Isso facilita o desenvolvimento, a distribuição e a execução de aplicações em diferentes ambientes. | ||
|
||
### Guia de Instalação | ||
* **Linux:** | ||
```bash | ||
# Instalação Ubuntu/Debian | ||
sudo apt-get update | ||
sudo apt-get install docker.io | ||
|
||
# Instalação CentOS/Fedora | ||
sudo yum install docker-ce docker-ce-cli containerd.io | ||
``` | ||
* **macOS:** | ||
* Instalar o Docker Desktop para Mac através do site oficial. | ||
* **Windows:** | ||
* Instalar o Docker Desktop para Windows através do site oficial. | ||
|
||
### Dockerfile | ||
Um Dockerfile é um arquivo de texto que contém todas as instruções para criar uma imagem Docker. Ele define a base da imagem, os comandos a serem executados e os arquivos que serão copiados para a imagem. | ||
* **Exemplo básico:** | ||
```dockerfile | ||
FROM ubuntu:latest | ||
RUN apt-get update && apt-get install -y nginx | ||
EXPOSE 80 | ||
CMD ["nginx", "-g", "daemon off;"] | ||
``` | ||
|
||
### Comandos Básicos | ||
* **`docker run`:** Executa um container a partir de uma imagem. | ||
* **`docker ps`:** Lista os containers em execução. | ||
* **`docker images`:** Lista as imagens disponíveis localmente. | ||
* **`docker stop`:** Para um container em execução. | ||
* **`docker rm`:** Remove um container. | ||
* **`docker build`:** Cria uma imagem a partir de um Dockerfile. | ||
|
||
## Docker-Compose | ||
|
||
### O que é Docker-Compose? | ||
O Docker Compose é uma ferramenta para definir e executar aplicações Docker multi-container usando um arquivo YAML. Ele facilita a criação de ambientes complexos com múltiplos serviços. | ||
|
||
### Guia de Instalação | ||
* **Instalação:** | ||
```bash | ||
sudo curl -L "[https://github.com/docker/compose/releases/download/1.29.2/docker-compose-linux-x86_64](https://github.com/docker/compose/releases/download/1.29.2/docker-compose-linux-x86_64)" -o /usr/local/bin/docker-compose | ||
sudo chmod +x /usr/local/bin/docker-compose | ||
``` | ||
|
||
### Comandos Básicos | ||
* **`docker-compose up`:** Inicia os serviços definidos no arquivo docker-compose.yml. | ||
* **`docker-compose down`:** Para e remove os containers e redes criados. | ||
* **`docker-compose build`:** Reconstrói as imagens dos serviços. | ||
|
||
**docker-compose.yml:** | ||
```yaml | ||
version: '3.7' | ||
services: | ||
web: | ||
build: . | ||
ports: | ||
- "5000:5000" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,118 @@ | ||
# Git / Github | ||
# Dojô Git / GitHub | ||
|
||
# Versão | ||
|
||
| **Título** | **Alterações Feitas** | **Autor** | **Data de Hoje** | | ||
|-------------------|-----------------------------------------------| -----------| --------------- | | ||
| Dojo Git/GitFlow | Subindo documento versão 1 | Mateus Maia | 09 de dezembro de 2024 | | ||
|
||
## Introdução | ||
|
||
### Git | ||
Git é um **sistema de controle de versão distribuído** usado para rastrear alterações no código fonte durante o desenvolvimento de software. | ||
- Permite que vários desenvolvedores trabalhem simultaneamente no mesmo projeto | ||
- Audita as alterações feitas em arquivos específicos ao longo do tempo. | ||
- Permite que os desenvolvedores revertam para versões anteriores, criem novas funcionalidades em paralelo e colaborem de maneira eficaz. | ||
|
||
### GitHub: | ||
GitHub é uma **plataforma de hospedagem** baseada na web para projetos Git, fornecendo uma interface visual para o controle de versão e colaboração em equipe. | ||
|
||
Ele permite que os desenvolvedores hospedem seus repositórios Git remotamente na nuvem e fornece recursos adicionais, como rastreamento de problemas, controle de acesso, integração contínua e muito mais. | ||
|
||
## Conceitos chave | ||
|
||
### Commit: | ||
Um commit no Git é uma operação na qual as alterações feitas em arquivos específicos são salvas no repositório **local** Git. | ||
- Cada commit é acompanhado de uma mensagem que descreve as alterações feitas, fornecendo contexto sobre o que foi modificado. | ||
- Commits ajudam a rastrear e documentar o progresso do desenvolvimento ao longo do tempo. | ||
|
||
### Branch: | ||
Uma branch no Git é uma ramificação independente do código fonte principal (geralmente chamado de branch "master" ou "main"). | ||
|
||
As branches permitem que os desenvolvedores trabalhem em novas funcionalidades ou correções de bugs sem interferir no código principal. | ||
|
||
Depois que as alterações em uma branch são concluídas e testadas, elas podem ser mescladas de volta a branch principal por meio de um processo chamado de "merge". | ||
|
||
### Merge: | ||
Merge é o processo de combinar as alterações de uma branch em outra. | ||
|
||
Por exemplo, você pode ter uma branch de desenvolvimento onde as novas funcionalidades são adicionadas e, quando estiverem prontas, você pode mesclá-las de volta para a branch principal (master ou main). | ||
|
||
### Pull Request (Pedido de Pull): | ||
Um pull request é uma solicitação feita por um colaborador de um repositório Git para incorporar suas alterações em uma branch específica desse repositório. | ||
|
||
Geralmente, os pull requests são usados em projetos colaborativos para revisão de código e integração de novas funcionalidades ou correções de bugs. Os mantenedores do projeto podem revisar as alterações propostas, fazer comentários e, eventualmente, mesclar o pull request se estiverem satisfeitos com as alterações. | ||
|
||
## Tutorial de COntrinuição Git | ||
|
||
Dojo de git do grupo do Livro Livre da disciplina de EPS. | ||
|
||
## Criando a sua chave ssh | ||
|
||
### 1. Gerando a sua chave SSH | ||
|
||
No seu terminal use o comando: | ||
|
||
``` ssh-keygen -t rsa -b 4096 -C "[email protected]"``` | ||
|
||
### 2. Adicionando a sua chave SSH RSA ao ssh-agent | ||
|
||
Abra um novo terminal e utilize esse comando: | ||
|
||
```eval "$(ssh-agent -s)"``` | ||
|
||
Em seguida esse comando: | ||
|
||
```ssh-add ~/.ssh/id_rsa``` | ||
|
||
### 3. Adicionar a sua chave SSH ao GitHub | ||
|
||
Em um terminal copie a chave SSH pública para a área de transferência, usando esse comando: | ||
|
||
```cat .ssh/id_rsa.pub``` | ||
|
||
No GitHUb acesse | ||
- Acesse Settings > SSH and GPG keys. | ||
- Clique em New SSH Key. | ||
- Cole a chave pública copiada no campo e salve. | ||
|
||
### 4. Testar a conexão SSH | ||
|
||
Para verificar se a chave SSH está funcionando, execute: | ||
|
||
``` ssh -T [email protected] ``` | ||
|
||
## Passos a serem executados | ||
|
||
### 1. Clone | ||
Clonem esse repositório para suas máquinas utilizando o ssh. | ||
|
||
### 2. Branches | ||
|
||
De acordo com nossa política de contribuição, devemos seguir o padrão estipulado de x_nome_da_issue para feature branches e hotfix_x_nome_da_issue para hotfix branches. | ||
|
||
#### 2.1 Crie branch de feature | ||
```$ git checkout -b x_nome_da_issue_seu_nome``` | ||
|
||
### 3. Stage/Add | ||
1. Crie um arquivo .js com nome `feature.js` com o conteúdo do [feature.txt](feature.txt); | ||
2. Salve suas mudanças; | ||
3. Dê "stage" em suas mudanças. ```$ git add feature.js``` | ||
|
||
### 4. Commit | ||
Commite suas mudanças para sua branch atual seguindo nossa política de commit. | ||
#### 4.1 Commite suas mudanças. | ||
```$ git commit -m "feat: create javascript feature"``` | ||
|
||
### 5. Push | ||
Envie para o repositório de origem as mudanças feitas. | ||
```$ git push origin x_nome_da_issue_seu_nome``` | ||
|
||
### 6. Rebase/Merge | ||
1. Edite o arquivo [dojo.py](dojo.py) conforme as instruções; | ||
2. Atualize sua branch com a `main` usando do rebase; ```$ git pull --rebase origin main``` | ||
3. Siga os passos conforme as instruções ministradas e sua linha de comando; | ||
4. Atualize a sua branch com as novas mudanças. ```$ git push -f origin x_nome_da_issue_seu_nome``` | ||
|
||
### 7. Abra um Pull Request para a Main | ||
Siga as instruções dadas em [política de contribuição](https://github.com/fga-eps-mds/EPS-2020-2-G1/blob/main/CONTRIBUTING.md) e seguindo nosso [pull request template](https://github.com/fga-eps-mds/EPS-2020-2-G1/blob/main/.github/pull_request_template.md). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,105 @@ | ||
# NestJS | ||
# Dojo NestJS: Construindo Backends Escaláveis e Eficientes em TypeScript | ||
|
||
## Versão | ||
|
||
| **Título** | **Alterações Feitas** | **Autor** | **Data de Hoje** | | ||
|-------------------|-----------------------------------------------| -----------| --------------- | | ||
| Dojo Rest.js | Subindo documento versão 1 | Mateus Maia | 09 de dezembro de 2024 | | ||
|
||
|
||
## Introdução ao NestJS | ||
|
||
* **O que é NestJS?** | ||
Um framework Node.js progressivo que utiliza TypeScript, oferecendo uma estrutura robusta para a construção de aplicações back-end escaláveis e eficientes. | ||
* **Por que usar NestJS?** | ||
* **TypeScript:** Tipagem estática, melhorando a qualidade do código. | ||
* **Modularidade:** Organização em módulos, promovendo reutilização. | ||
* **Dependecy Injection:** Injeção de dependências automática. | ||
* **Comunidade:** Grande comunidade e suporte. | ||
* **Performance:** Otimizado para alto desempenho. | ||
|
||
## Instalando e Configurando o Ambiente | ||
|
||
* **Instalação:** | ||
```bash | ||
npm install -g @nestjs/cli | ||
nest new my-nest-app | ||
cd my-nest-app | ||
npm run start | ||
``` | ||
* **Editor de código:** Visual Studio Code, Sublime Text, Atom. | ||
* **Extensões:** TypeScript, ESLint, Prettier. | ||
|
||
## Conceitos Fundamentais | ||
|
||
* **Módulos:** Contêm controladores, serviços, provedores. | ||
* **Controladores:** Exportam rotas HTTP. | ||
* **Serviços:** Contêm a lógica de negócio. | ||
* **Provedores:** Fornecem serviços para outras partes da aplicação. | ||
* **Decoradores:** Adicionam metadados às classes. | ||
* **Pipes:** Validam e transformam dados de entrada. | ||
* **Guards:** Protegem rotas. | ||
* **Interceptors:** Interceptam requisições e respostas. | ||
|
||
## Criando sua Primeira API | ||
|
||
* **Criando um controlador:** | ||
```typescript | ||
import { Controller, Get } from '@nestjs/common'; | ||
@Controller() | ||
export class AppController { | ||
@Get() | ||
getHello(): string { | ||
return 'Hello World!'; | ||
} | ||
} | ||
``` | ||
* **Testando a API:** | ||
```bash | ||
curl http://localhost:3000 | ||
``` | ||
## Trabalhando com Banco de Dados | ||
* **TypeORM:** ORM popular para NestJS. | ||
* **Mongoose:** Outro ORM popular, especialmente para MongoDB. | ||
* **Criando entidades:** | ||
```typescript | ||
import { Entity, PrimaryGeneratedColumn, Column } from 'typeorm'; | ||
@Entity() | ||
export class User { | ||
@PrimaryGeneratedColumn() | ||
id: number; | ||
@Column() | ||
firstName: string; | ||
} | ||
``` | ||
## Testando sua Aplicação | ||
* **Jest:** Framework de testes JavaScript. | ||
* **Supertest:** Biblioteca para testar APIs HTTP. | ||
## Tópicos Avançados | ||
* **WebSockets:** Comunicação em tempo real. | ||
* **GraphQL:** Linguagem de consulta para APIs. | ||
* **Microserviços:** Construindo aplicações distribuídas. | ||
* **Cloud Computing:** Deploy em plataformas como AWS, GCP e Azure. | ||
## Projetos Práticos | ||
* **API REST para um blog:** Crie posts, comentários, usuários. | ||
* **Aplicativo de chat em tempo real:** Utilize WebSockets. | ||
* **E-commerce:** Carrinho de compras, pagamentos, produtos. | ||
## Recursos Adicionais | ||
* **Documentação Oficial:** https://nestjs.com/ | ||
* **TypeORM:** https://typeorm.io/ | ||
* **Mongoose:** https://mongoosejs.com/ | ||