manuais-e-documentacao-itguys/documentacao conteineres/Nivel_1/Gestao_Stacks_Portainer.md

78 lines
3.1 KiB
Markdown

# MANUAL TÉCNICO - GESTÃO DE STACKS NO PORTAINER
**Código:** ITGSUP 0009/26 | **Classificação:** RESTRITO
**Responsável:** João Pedro Toledo Gonçalves | **Data:** {{DATA_ATUAL}}
## 1. HISTÓRICO DE REVISÃO
> ⚠️ **REGRA DE OURO:**
> 1. **Autor:** João Pedro Toledo Gonçalves.
> 2. **Descrição:** Criação do documento.
| Data | Versão | Descrição | Autor |
| :--- | :--- | :--- | :--- |
| {{DATA_ATUAL}} | 1.0 | Criação Inicial | João Pedro Toledo Gonçalves |
## 2. OBJETIVO
Padronizar o deploy de aplicações (Stacks) no Portainer utilizando três métodos: Upload Manual, Templates de App e Repositório Git (GitOps Básico).
## 3. PRÉ-REQUISITOS
- [ ] Portainer instalado e acessível.
- [ ] Um arquivo `docker-compose.yml` válido E/OU Uma URL de repositório Git (GitHub/GitLab).
## 4. PASSO A PASSO (EXECUÇÃO)
**Etapa 1: Deploy via Web Editor (Rápido)**
1. No menu lateral, clique em **Stacks** -> **Add stack**.
2. Selecione a opção **Web editor**.
3. **Name:** Dê um nome único (ex: `meu-nginx`).
4. Cole o conteúdo do seu `docker-compose.yml` na área de texto.
5. Clique em **Deploy the stack**.
**Etapa 2: Deploy via App Templates (Iniciantes)**
1. No menu lateral, clique em **App Templates**.
2. Selecione uma aplicação pronta (ex: "Wordpress" ou "Nginx").
3. Preencha os campos (Nome, Senha do Banco).
4. Clique em **Deploy the stack**.
**Etapa 3: Deploy via Repositório Git (Recomendado/GitOps)**
> 🚀 **MELHOR PRÁTICA:** Permite versionamento e "Single Source of Truth".
1. Vá em **Stacks** -> **Add stack**.
2. Selecione **Git Repository**.
3. **Configuração:**
* **Repository URL:** `https://github.com/usuario/repo.git`
* **Repository Reference:** `main` (ou `refs/heads/main`).
* **Compose path:** `docker-compose.yml` (se estiver na raiz).
4. **Authentication (Se privado):**
* Ative "Authentication".
* Use seu Username e, preferencialmente, um **Personal Access Token** (não sua senha).
5. Ative **Automatic updates** (Opcional) para polling.
6. Clique em **Deploy the stack**.
**Etapa 4: Edição e Updates**
* **Web Editor:** Clique na stack -> Editor -> Update the stack.
* **Git:** Faça o commit no Git -> No Portainer, clique em **"Pull and redeploy"** (ou aguarde o Auto-update).
## 5. SOLUÇÃO DE PROBLEMAS (TROUBLESHOOTING)
**Problema 1: "Deployment error: Stack already exists"**
* **Causa:** Já existe uma stack com esse nome (mesmo que parada).
* **Solução:** Delete a stack antiga ou use outro nome.
**Problema 2: "Authentication failed" no Git**
* **Causa:** Senha incorreta ou uso de senha ao invés de Token (GitHub exige Token).
* **Solução:** Gere um PAT (Personal Access Token) no GitHub (Settings -> Developer Settings) e use como senha.
## 6. DADOS TÉCNICOS
| Campo | Valor | Descrição |
| :--- | :--- | :--- |
| **Padrão** | `docker-compose.yml` | Formato obrigatório |
| **Limit** | `Stack` | Equivalente a um projeto Docker Compose |
## 7. VALIDAÇÃO FINAL
- [ ] A stack aparece com status "Active"?
- [ ] Os conteineres subiram corretamente?
- [ ] Alterar o Git reflete no Portainer (se testado pull)?