An open API service indexing awesome lists of open source software.

https://github.com/raizertechdev/desafio-modulo-docker-stackx


https://github.com/raizertechdev/desafio-modulo-docker-stackx

Last synced: about 2 months ago
JSON representation

Awesome Lists containing this project

README

          

# Desafio-Modulo-Docker-Stackx


## Índice

- [Objetivo](#objetivo)
- [Atividade 1](#atividade-1-empacotando-uma-aplicação-simples-de-frontend-com-docker)
- [ Requisitos](#requisitos)
- [ Como Executar](#como-executar)
- [ Detalhes da Imagem](#detalhes-da-imagem)
- [Atividade 2](#atividade-2-implementação-do-wikijs-com-postgresql)
- [ Requisitos](#requisitos-1)
- [ Como Executar](#como-executar-1)
- [ Detalhes da Stackx ](#detalhes-da-stack)
- [ Persistência de Dados](#persistência-de-dados)


## Objetivo

Demonstrar 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.


---

## Atividade 1: Empacotando uma aplicação simples de frontend com Docker

Este 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.

---



[Demonstração-Aplicação -atv1]

![Captura de Tela da Aplicação](/assets/images/aplicacao-docker.png)


---


### Requisitos

- Docker instalado e configurado.

---


### Como executar


1. Clone este repositório:

```bash
git clone https://github.com/seu-usuario/desafio-modulo-docker-stackx.git
```


2. Navegue até o diretório da atividade 1:
```bash
cd desafio-modulo-docker-stackx/atv1
```


3. Construa a imagem Docker:
```bash
sudo docker build -t desafio-modulo-docker-stackx-atv1 .
```


4. Execute o container:
```bash
docker run -d -p 8080:80 --name desafio-atv1 desafio-modulo-docker-stackx-atv1
```


5. Acesse a aplicação no navegador:

Abra o navegador e vá para http://localhost:8080.


6. Verificar se o container está em execução
```bash
sudo docker ps
```


---

7. Remover o container
```bash
sudo docker rm atv1
```


---

### Detalhes da Imagem:

- Imagem base: nginx:alpine

- Diretório de trabalho: /app

- Variável de ambiente: APP_VERSION=1.0.0

- Porta exposta: 80

- Pacotes instalados: curl, htop, wget


---

# Atividade 2: Implementação do Wiki.js com PostgreSQL

Este 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.

---



[Demonstração-Aplicação Docker-atv2]

![Captura de Tela da Aplicação](/assets/images/tela-wiki.png)


---


## Requisitos

- Docker instalado e configurado.
- Docker Compose instalado.

## Como executar

1. Clone este repositório:

```bash
git clone https://github.com/RaizerTechDev/desafio-modulo-docker-stackx.git
```


2. Navegue até o diretório da atividade 2:
```bash
cd desafio-modulo-docker-stackx/atv2
```


3. Inicie a stack com Docker Compose:

```bash
sudo docker-compose up -d
```


4. Acesse a aplicação Wiki.js no navegador:

Abra o navegador e vá para http://localhost:3000.

- Siga as instruções na tela para concluir a configuração inicial do Wiki.js.


## Detalhes da Stack

Wiki.js: Imagem oficial ghcr.io/requarks/wiki:2.

PostgreSQL: Imagem oficial postgres:13.

Portas:

Wiki.js: 3000

PostgreSQL: 5432 (interno, não exposto).

Variáveis de ambiente:

Banco de dados: wiki

Usuário: wikijs

Senha: wikijsrocks

Persistência de dados:

Volume wiki_db_data para o PostgreSQL.


## Persistência de Dados

Os 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.

- Como acessar o PostgreSQL e verificar as tabelas.

- Conecte-se ao container do PostgreSQL:

```bash
docker exec -it wiki_db psql -U wikijs -d wiki
```


- No prompt do psql, você pode executar comandos SQL para interagir com o banco de dados. Aqui estão alguns exemplos:

- Listar todas as tabelas:

```sql
\dt
```


- Verificar os dados da tabela users (usuários do Wiki.js):

```sql
SELECT * FROM users;
```


- Verificar os dados da tabela pages (páginas criadas no Wiki.js):

```sql
SELECT * FROM pages;
```


- Sair do psql:

```sql
\q
```


7. Como parar a stack

Execute o seguinte comando no diretório atv2:

```bash
docker-compose down
```


---

## Tecnologias

- HTML5 (Linguagem de marcação utilizada para a construção das páginas web).

- Dockerfile (É um arquivo de texto (sem extensão) que contém instruções para construir uma imagem Docker).

- 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).

- Docker-Compose (É uma ferramenta para definir e gerenciar múltiplos containers Docker em um único arquivo (YAML)).

- Wiki (Plataforma colaborativa de edição e compartilhamento de conhecimento (ex.: Wikipedia)).

- Git (Sistema de controle de versões).

- Github (Plataforma para hospedagem de código-fonte).

- Visual Studio Code (Editor de código-fonte).

- Navegador web (Interação com documentos HTML).


---

## Licença

- Esse projeto está sob a licença MIT.


---

Autor




&nbsp&nbsp&nbspRafaRaizer-Dev

&nbsp&nbsp&nbspWhatsapp | LinkedIn | GitHubTableauPortfólio