{"id":25013845,"url":"https://github.com/maiarasanto/desafio-modulo-docker-stackx","last_synced_at":"2026-04-11T13:10:07.463Z","repository":{"id":275836960,"uuid":"927190928","full_name":"MaiaraSanto/Desafio-Modulo-Docker-StackX","owner":"MaiaraSanto","description":"Este repositório contém a solução para o desafio do módulo Docker da StackX. O projeto está organizado em duas atividades distintas: a primeira visa a conteneirização de uma aplicação frontend simples utilizando o servidor web Nginx, e a segunda envolve a implantação da plataforma Wiki.js, com persistência de dados em um banco de dados PostgreSQL","archived":false,"fork":false,"pushed_at":"2025-02-05T00:01:39.000Z","size":22546,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-30T05:12:18.605Z","etag":null,"topics":["docker","docker-compose","docker-container","docker-image","dockerfile","html5","nginx","postgresql","wiki"],"latest_commit_sha":null,"homepage":"","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/MaiaraSanto.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-04T14:58:14.000Z","updated_at":"2025-02-07T01:25:02.000Z","dependencies_parsed_at":"2025-02-05T00:33:28.763Z","dependency_job_id":null,"html_url":"https://github.com/MaiaraSanto/Desafio-Modulo-Docker-StackX","commit_stats":null,"previous_names":["maiarasanto/desafio-m-dulo-docker---stackx","maiarasanto/desafio-modulo-docker-stackx"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaiaraSanto%2FDesafio-Modulo-Docker-StackX","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaiaraSanto%2FDesafio-Modulo-Docker-StackX/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaiaraSanto%2FDesafio-Modulo-Docker-StackX/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaiaraSanto%2FDesafio-Modulo-Docker-StackX/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MaiaraSanto","download_url":"https://codeload.github.com/MaiaraSanto/Desafio-Modulo-Docker-StackX/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246277367,"owners_count":20751549,"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":["docker","docker-compose","docker-container","docker-image","dockerfile","html5","nginx","postgresql","wiki"],"created_at":"2025-02-05T07:16:16.751Z","updated_at":"2025-12-30T23:16:58.610Z","avatar_url":"https://github.com/MaiaraSanto.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Desafio-Modulo-Docker-StackX\n\n# 📌 Desafio Módulo Docker - StackX\n\n\u003e **Este repositório contém a solução para o desafio do módulo Docker da StackX.**  \n\u003e O projeto está organizado em duas atividades distintas: a primeira visa a conteneirização de uma aplicação **frontend simples** utilizando o servidor **web Nginx**, e a segunda envolve a implantação da plataforma **Wiki.js**, com persistência de dados em um banco de dados PostgreSQL.\n\n# \n**Exemplo de como foi executado**\n#\n  \u003cimg src=\"./gravando.gif\" align=\"center\" height=\"500em\" width=\"100%\"\u003e \n\n\n---\n\n## 🛠 Tecnologias Utilizadas\n\n- **Docker** 🐳\n- **Docker Compose** 📦\n- **Nginx** (para servir o frontend)\n- **PostgreSQL** (para o banco de dados do Wiki.js)\n- **Wiki.js** 📖\n\n---\n\n## 📂 Estrutura do Projeto\n\ndesafio-modulo-docker-stackx/\n\n│──  /atv1 # Aplicação frontend empacotada com Docker \n\n│    ├── index.html \n\n│    ├── Dockerfile \n\n│    ├── README.md \n\n│──  /atv2 # Configuração do Wiki.js usando Docker Compose \n\n│    ├── docker-compose.yml \n\n│    ├── README.md \n\n│     │── README.md # Documento principal do projeto\n\n\n---\n\n## 📝 Atividade 1 -  Conteneirização de Aplicação Frontend com Nginx\n\n### 📌 Descrição  \nNesta atividade, o objetivo é conteneirizar uma aplicação frontend simples utilizando o servidor **web Nginx**. O container criado servirá um arquivo **index.html** estático e atenderá os seguintes requisitos:\n\n### 🔹 Configuração do Dockerfile  \n\n```dockerfile\n# Usando a imagem oficial mais leve do Nginx\nFROM nginx:alpine\n\n# Definição do diretório de trabalho\nWORKDIR /app\n\n# Copia o arquivo index.html para dentro do container\nCOPY index.html /usr/share/nginx/html\n\n# Define uma variável de ambiente\nENV APP_VERSION=1.0.0\n\n# Expõe a porta 80\nEXPOSE 80\n\n# Comando para iniciar o Nginx\nCMD [\"nginx\", \"-g\", \"daemon off;\"]\n````\n# 🚀 Passos para Rodar\n1. Navegue até o diretório atv1 e construa a imagem:\n````\ndocker build -t frontend-app .\n````\n2. Execute o container:\n````\ndocker run -d -p 8080:80 frontend-app\n````\n\n3. Acessar no navegador:\n\n````\nhttp://localhost:8080\n````\n\nA página carregada será algo como:\n\n**Dockerized Application - Feito com ❤️ usando Docker**.\n\n# 📝 Atividade 2 - : Implantação do Wiki.js com PostgreSQL\n## 📌 Descrição\n\nNesta atividade, implementamos a plataforma Wiki.js utilizando um ambiente Docker composto por dois containers: um para a aplicação e outro para o banco de dados PostgreSQL.\n\n🛠 Configuração do docker-compose.yml\n```yaml\nversion: '3.8'\n\nservices:\n  postgres:\n    image: postgres:14\n    container_name: wiki-db\n    restart: always\n    environment:\n      POSTGRES_DB: wiki\n      POSTGRES_USER: wiki\n      POSTGRES_PASSWORD: password\n    volumes:\n      - postgres_data:/var/lib/postgresql/data\n    networks:\n      - wikinet\n\n  wiki:\n    image: requarks/wiki:latest\n    container_name: wiki-app\n    restart: always\n    ports:\n      - \"3000:3000\"\n    environment:\n      DB_TYPE: postgres\n      DB_HOST: wiki-db\n      DB_PORT: 5432\n      DB_USER: wiki\n      DB_PASS: password\n      DB_NAME: wiki\n    networks:\n      - wikinet\n    depends_on:\n      - postgres\n\nnetworks:\n  wikinet:\n\nvolumes:\n  postgres_data:\n```\n\n## 🛠 2. Explicação da Configuração do docker-compose.yml\n🔹 Estrutura Geral\n- services → Define os serviços que serão criados.\n- volumes → Mantém os dados do banco de dados persistentes.\n- networks → Permite a comunicação entre containers.\n## Nota: O código acima cria dois serviços:\n- PostgreSQL (wiki-db): Banco de dados persistente.\n- Wiki.js (wiki-app): Aplicação Wiki.js conectada ao PostgreSQL.\n\n  🔹 Serviço: Banco de Dados PostgreSQL\n   ``` postgres:\n    image: postgres:14\n    container_name: wiki-db\n    restart: always\n    environment:\n      POSTGRES_DB: wiki\n      POSTGRES_USER: wiki\n      POSTGRES_PASSWORD: password\n    volumes:\n      - postgres_data:/var/lib/postgresql/data\n    networks:\n      - wikinet\n   ```\n  \n✅ Usa a imagem oficial postgres:14.\n\n✅ Define um banco de dados chamado wiki.\n\n✅ Define o usuário e a senha de acesso.\n\n✅ Define credenciais de acesso (POSTGRES_USER, POSTGRES_PASSWORD).\n\n✅ Cria um volume chamado postgres_data para persistência.\n\n✅ Usa uma rede chamada wikinet para comunicação entre os containers.\n\n🔹 Serviço: Aplicação Wiki.js\n ``` wiki:\n    image: requarks/wiki:latest\n    container_name: wiki-app\n    restart: always\n    ports:\n      - \"3000:3000\"\n    environment:\n      DB_TYPE: postgres\n      DB_HOST: wiki-db\n      DB_PORT: 5432\n      DB_USER: wiki\n      DB_PASS: password\n      DB_NAME: wiki\n    networks:\n      - wikinet\n    depends_on:\n      - postgres\n ```\n✅ Usa a imagem requarks/wiki:latest.\n\n✅ Expõe a aplicação na porta 3000.\n\n✅ Se conecta ao banco de dados PostgreSQL e wiki-db.\n\n✅ depends_on: postgres → Garante que o banco inicie antes da aplicação.\n\n\n\n# 🚀 Passos para Rodar\n1 . Navegue até o diretório atv2 e execute o seguinte comando:\n   \n   ```` docker-compose up -d````\n\n2 . Acessa a plataforma no navegador:\n   \n ````http://localhost:3000````\n\n## 5. Configurar o Wiki.js\n- Escolher o idioma\n\n- Criar a conta de administrador\n\n- Configurar o banco de dados (já pré-definido no Compose)\n\n## 📌 Comandos úteis para gerenciamento de containers\n\n- Verificar os containers em execução:\n  \n  ````docker ps````\n  \n- Parar um container:\n  \n  ```` docker stop \u003ccontainer_id\u003e````\n  \n- Verificar logs de um container:\n  \n  ```` docker logs \u003ccontainer_id\u003e ````\n  \n- Remover um container:\n  \n  ```` docker rm \u003ccontainer_id\u003e ````\n  \n- Remover todas as imagens:\n  \n  ```` docker system prune -a ````\n  \n\n# 🏆 Conclusão\nEste desafio permitiu a prática da containerização de aplicações web e o uso do Docker Compose para gerenciar múltiplos containers. Com isso, aprendemos a: \n\n✅ Criar um container para uma aplicação frontend estática.\n\n✅ Configurar um serviço completo com banco de dados e aplicação.\n\n✅ Trabalhar com variáveis de ambiente no Docker.\n\n✅ Utilizar volumes e redes para comunicação entre containers.\n\n# 📜 Licença\nEste projeto foi desenvolvido para fins educacionais como parte do curso StackX. Sinta-se à vontade para contribuir e expandir as funcionalidades!\n\n---\n\n### 🔹 Como este README foi estilizado?\n- **Títulos grandes:** `#`, `##`, `###`\n- **Blocos de código:** ```sh```, ```yaml```, ```dockerfile```\n- **Citações:** `\u003e texto`\n- **Negrito:** `**texto**`\n- **Listas e estrutura de diretórios:** `-`, `1.`, e ` ``` `\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaiarasanto%2Fdesafio-modulo-docker-stackx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaiarasanto%2Fdesafio-modulo-docker-stackx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaiarasanto%2Fdesafio-modulo-docker-stackx/lists"}