{"id":25349655,"url":"https://github.com/raizertechdev/desafio-modulo-docker-stackx","last_synced_at":"2025-11-06T21:03:09.093Z","repository":{"id":277244864,"uuid":"931682590","full_name":"RaizerTechDev/desafio-modulo-docker-stackx","owner":"RaizerTechDev","description":null,"archived":false,"fork":false,"pushed_at":"2025-02-12T22:17:17.000Z","size":17,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-12T23:22:52.559Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RaizerTechDev.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2025-02-12T17:24:38.000Z","updated_at":"2025-02-12T22:17:20.000Z","dependencies_parsed_at":"2025-02-12T23:22:55.056Z","dependency_job_id":"12e8b328-369a-4a54-a03e-5289dd69263f","html_url":"https://github.com/RaizerTechDev/desafio-modulo-docker-stackx","commit_stats":null,"previous_names":["raizertechdev/desafio-modulo-docker-stackx"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RaizerTechDev%2Fdesafio-modulo-docker-stackx","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RaizerTechDev%2Fdesafio-modulo-docker-stackx/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RaizerTechDev%2Fdesafio-modulo-docker-stackx/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RaizerTechDev%2Fdesafio-modulo-docker-stackx/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RaizerTechDev","download_url":"https://codeload.github.com/RaizerTechDev/desafio-modulo-docker-stackx/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247933907,"owners_count":21020709,"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":[],"created_at":"2025-02-14T16:57:29.780Z","updated_at":"2025-11-06T21:03:09.085Z","avatar_url":"https://github.com/RaizerTechDev.png","language":"Dockerfile","readme":"# Desafio-Modulo-Docker-Stackx\n\n\u003cbr\u003e\n\n\u003cdiv align=\"left\"\u003e\n\n## Índice\n\n- [Objetivo](#objetivo)\n- [Atividade 1](#atividade-1-empacotando-uma-aplicação-simples-de-frontend-com-docker)\n  - [ Requisitos](#requisitos)\n  - [ Como Executar](#como-executar)\n  - [ Detalhes da Imagem](#detalhes-da-imagem)\n- [Atividade 2](#atividade-2-implementação-do-wikijs-com-postgresql)\n  - [ Requisitos](#requisitos-1)\n  - [ Como Executar](#como-executar-1)\n  - [ Detalhes da Stackx ](#detalhes-da-stack)\n  - [ Persistência de Dados](#persistência-de-dados)\n\n\u003cbr\u003e\n\n## Objetivo\n\nDemonstrar domínio prático de Docker e Docker Compose através da criação de soluções escaláveis, desde aplicações simples até sistemas complexos com banco de dados, seguindo requisitos técnicos e boas práticas de conteinerização.\n\n\u003cbr\u003e\n\n---\n\n## Atividade 1: Empacotando uma aplicação simples de frontend com Docker\n\nEste repositório contém a solução para a Atividade 1 do módulo Docker, onde empacotamos uma aplicação simples de frontend usando a imagem oficial do Nginx.\n\n---\n\n\u003cdiv align=\"center\"\u003e\n  \n\u003cimg src= \"https://media.giphy.com/media/3zSF3Gnr7cxMbi6WoP/giphy.gif\" align=\"center\" height=\"55\" width=\"55\"\u003e [Demonstração-Aplicação -atv1] \u003cimg src= \"https://media.giphy.com/media/E5DzZsofmgxc9wjbhX/giphy.gif\" align=\"center\" height=\"35\" width=\"35\"\u003e\n\n![Captura de Tela da Aplicação](/assets/images/aplicacao-docker.png)\n\n\u003cbr\u003e\n\n---\n\n\u003cdiv align=\"left\"\u003e\n\n\u003cbr\u003e\n\n### Requisitos\n\n- Docker instalado e configurado.\n\n---\n\n\u003cbr\u003e\n\n### Como executar\n\n\u003cbr\u003e\n\n1. Clone este repositório:\n\n   ```bash\n   git clone https://github.com/seu-usuario/desafio-modulo-docker-stackx.git\n   ```\n\n\u003cbr\u003e\n\n2. Navegue até o diretório da atividade 1:\n   ```bash\n   cd desafio-modulo-docker-stackx/atv1\n   ```\n\n\u003cbr\u003e\n\n3. Construa a imagem Docker:\n   ```bash\n   sudo docker build -t desafio-modulo-docker-stackx-atv1 .\n   ```\n\n\u003cbr\u003e\n\n4. Execute o container:\n   ```bash\n   docker run -d -p 8080:80 --name desafio-atv1 desafio-modulo-docker-stackx-atv1\n   ```\n\n\u003cbr\u003e\n\n5. Acesse a aplicação no navegador:\n\n   Abra o navegador e vá para http://localhost:8080.\n\n\u003cbr\u003e\n\n6. Verificar se o container está em execução\n   ```bash\n   sudo docker ps\n   ```\n\n\u003cbr\u003e\n\n---\n\n7. Remover o container\n   ```bash\n   sudo docker rm atv1\n   ```\n\n\u003cbr\u003e\n\n---\n\n### Detalhes da Imagem:\n\n- Imagem base: nginx:alpine\n\n- Diretório de trabalho: /app\n\n- Variável de ambiente: APP_VERSION=1.0.0\n\n- Porta exposta: 80\n\n- Pacotes instalados: curl, htop, wget\n\n\u003cbr\u003e\n\n---\n\n# Atividade 2: Implementação do Wiki.js com PostgreSQL\n\nEste repositório contém a solução para a Atividade 2 do módulo Docker, onde implementamos uma plataforma de documentação chamada **Wiki.js** com um banco de dados **PostgreSQL** usando Docker.\n\n---\n\n\u003cdiv align=\"center\"\u003e\n  \n\u003cimg src= \"https://media.giphy.com/media/3zSF3Gnr7cxMbi6WoP/giphy.gif\" align=\"center\" height=\"55\" width=\"55\"\u003e [Demonstração-Aplicação Docker-atv2] \u003cimg src= \"https://media.giphy.com/media/E5DzZsofmgxc9wjbhX/giphy.gif\" align=\"center\" height=\"35\" width=\"35\"\u003e\n\n![Captura de Tela da Aplicação](/assets/images/tela-wiki.png)\n\n\u003cbr\u003e\n\n---\n\n\u003cdiv align=\"left\"\u003e\n\n\u003cbr\u003e\n\n## Requisitos\n\n- Docker instalado e configurado.\n- Docker Compose instalado.\n\n## Como executar\n\n1. Clone este repositório:\n\n   ```bash\n   git clone https://github.com/RaizerTechDev/desafio-modulo-docker-stackx.git\n   ```\n\n\u003cbr\u003e\n\n2. Navegue até o diretório da atividade 2:\n   ```bash\n   cd desafio-modulo-docker-stackx/atv2\n   ```\n\n\u003cbr\u003e\n\n3. Inicie a stack com Docker Compose:\n\n   ```bash\n   sudo docker-compose up -d\n   ```\n\n \u003cbr\u003e\n\n4. Acesse a aplicação Wiki.js no navegador:\n\n   Abra o navegador e vá para http://localhost:3000.\n\n   - Siga as instruções na tela para concluir a configuração inicial do Wiki.js.\n\n \u003cbr\u003e\n\n## \u003ci\u003eDetalhes da Stack\u003c/i\u003e\n\n    Wiki.js: Imagem oficial ghcr.io/requarks/wiki:2.\n\n    PostgreSQL: Imagem oficial postgres:13.\n\n    Portas:\n\n        Wiki.js: 3000\n\n        PostgreSQL: 5432 (interno, não exposto).\n\n    Variáveis de ambiente:\n\n        Banco de dados: wiki\n\n        Usuário: wikijs\n\n        Senha: wikijsrocks\n\n    Persistência de dados:\n\n        Volume wiki_db_data para o PostgreSQL.\n\n \u003cbr\u003e\n\n## \u003ci\u003ePersistência de Dados\u003c/i\u003e\n\nOs dados do PostgreSQL são armazenados em um volume Docker chamado wiki_db_data. Isso garante que os dados sejam mantidos mesmo se o container for reiniciado ou removido.\n\n- Como acessar o PostgreSQL e verificar as tabelas.\n\n- Conecte-se ao container do PostgreSQL:\n\n  ```bash\n  docker exec -it wiki_db psql -U wikijs -d wiki\n  ```\n\n \u003cbr\u003e\n\n- No prompt do psql, você pode executar comandos SQL para interagir com o banco de dados. Aqui estão alguns exemplos:\n\n  - Listar todas as tabelas:\n\n  ```sql\n  \\dt\n  ```\n\n \u003cbr\u003e\n\n- Verificar os dados da tabela users (usuários do Wiki.js):\n\n  ```sql\n  SELECT * FROM users;\n  ```\n\n \u003cbr\u003e\n\n- Verificar os dados da tabela pages (páginas criadas no Wiki.js):\n\n  ```sql\n  SELECT * FROM pages;\n  ```\n\n \u003cbr\u003e\n\n- Sair do psql:\n\n  ```sql\n  \\q\n  ```\n\n \u003cbr\u003e\n\n7.  \u003ci\u003eComo parar a stack\u003c/i\u003e\n\n    Execute o seguinte comando no diretório atv2:\n\n    ```bash\n    docker-compose down\n    ```\n    \n\u003cbr\u003e\n\n---\n\n## Tecnologias\n\n- HTML5 (Linguagem de marcação utilizada para a construção das páginas web).\n\n- Dockerfile (É um arquivo de texto (sem extensão) que contém instruções para construir uma imagem Docker).\n\n-  Docker-Image (É um pacote imutável (como um template) que contém tudo necessário para executar uma aplicação: código, runtime, bibliotecas e variáveis de ambiente).\n\n-  Docker-Compose (É uma ferramenta para definir e gerenciar múltiplos containers Docker em um único arquivo (YAML)).\n\n-  Wiki (Plataforma colaborativa de edição e compartilhamento de conhecimento (ex.: Wikipedia)).\n\n- Git (Sistema de controle de versões).\n\n- Github (Plataforma para hospedagem de código-fonte).\n\n- Visual Studio Code (Editor de código-fonte).\n\n- Navegador web (Interação com documentos HTML).\n\n\u003cbr\u003e\n\n---\n\n## Licença\n\n- Esse projeto está sob a licença MIT.\n\n\u003cbr\u003e\n\n---\n\n\u003cimg src=\"https://media.giphy.com/media/ImmvDZ2c9xPR8gDvHV/giphy.gif\" align=\"center\" height=\"25\" width=\"25\"\u003e Autor\n\n\u003cp\u003e\n    \u003cimg align=left margin=10 width=80 src=\"https://avatars.githubusercontent.com/u/87991807?v=4\"/\u003e\n    \u003cp\u003e\u0026nbsp\u0026nbsp\u0026nbspRafaRaizer-Dev\u003cbr\u003e\n    \u0026nbsp\u0026nbsp\u0026nbsp\u003ca href=\"https://api.whatsapp.com/send/?phone=47999327137\"\u003eWhatsapp\u003c/a\u003e\u0026nbsp;|\u0026nbsp;\u003ca href=\"https://www.linkedin.com/in/rafael-raizer//\"\u003eLinkedIn\u003c/a\u003e\u0026nbsp;|\u0026nbsp;\u003ca href=\"https://github.com/RaizerTechDev\"\u003eGitHub\u003c/a\u003e|\u0026nbsp;\u003ca href=\"https://public.tableau.com/app/profile/rafael.raizer\"\u003eTableau\u003c/a\u003e|\u0026nbsp;\u003ca href=\"https://raizertechdev-portfolio.netlify.app/\"\u003ePortfólio\u003c/a\u003e\u0026nbsp;\u003c/p\u003e\n\u003c/p\u003e\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraizertechdev%2Fdesafio-modulo-docker-stackx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fraizertechdev%2Fdesafio-modulo-docker-stackx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraizertechdev%2Fdesafio-modulo-docker-stackx/lists"}