Skip to content

Commit

Permalink
feat: adding content from day 2
Browse files Browse the repository at this point in the history
  • Loading branch information
nataliagranato committed Mar 16, 2024
1 parent 3ffaa53 commit 6a05995
Show file tree
Hide file tree
Showing 4 changed files with 123 additions and 0 deletions.
27 changes: 27 additions & 0 deletions docs/day-2/GLOSSARIO.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Glossário de Dockerfile

- ADD: Instrução utilizada no Dockerfile para copiar arquivos e diretórios para dentro do container.

- CMD: Instrução utilizada no Dockerfile para especificar o comando padrão a ser executado quando o container for iniciado.

- COPY: Instrução utilizada no Dockerfile para copiar arquivos e diretórios para dentro do container.

- ENTRYPOINT: Instrução utilizada no Dockerfile para especificar o comando padrão a ser executado quando o container for iniciado, porém não pode ser substituído ao iniciar o container.

- ENV: Instrução utilizada no Dockerfile para definir variáveis de ambiente que serão utilizadas durante a construção e execução do container.

- EXPOSE: Instrução utilizada no Dockerfile para definir as portas em que o container irá escutar, permitindo a comunicação com outros containers ou com o host.

- FROM: Instrução utilizada no Dockerfile para especificar a imagem base que será utilizada para construir o container.

- LABEL: Instrução utilizada no Dockerfile para adicionar metadados à imagem, como informações do autor e descrição.

- MAINTAINER: Instrução utilizada no Dockerfile para especificar o autor da imagem.

- RUN: Instrução utilizada no Dockerfile para executar comandos durante a construção do container.

- USER: Instrução utilizada no Dockerfile para especificar o usuário que será usado para executar os comandos dentro do container.

- VOLUME: Instrução utilizada no Dockerfile para definir um ponto de montagem de volume, permitindo o compartilhamento de dados entre o host e o container.

- WORKDIR: Instrução utilizada no Dockerfile para definir o diretório de trabalho dentro do container, onde os comandos serão executados.
4 changes: 4 additions & 0 deletions docs/day-2/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -147,3 +147,7 @@ Note que as variáveis ARG são apenas acessíveis durante a fase de construçã
- ONBUILD: Adiciona uma instrução que será executada quando a imagem for usada como base para outra.
- SHELL: Substitui o shell padrão usado nas instruções RUN, CMD e ENTRYPOINT.
- DEPRECATED: Indica que uma instrução ou recurso é obsoleto e pode ser removido em versões futuras.

# O que é um registry?

Um registry de imagens Docker é um repositório que armazena e distribui imagens Docker. Ele pode ser público, como o Docker Hub, ou privado, hospedado em sua própria rede ou infraestrutura.
77 changes: 77 additions & 0 deletions docs/day-2/SENHAS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
# Executando a aplicação local

1. Clone o repositório:

```
git clone https://github.com/badtuxx/giropops-senhas.git
```

2. Entre no diretório de trabalho:

```
cd giropops-senhas
```

3. Atualizando o sistema operacional

```
sudo apt update -y
```

4. Certifique de ter o python instalado e instale o gerenciador de pacotes:

```
sudo apt-get install pip
```

5. Atualizando o projeto:

*Esse passo foi necessário, pois encontramos o seguinte erro:*

```
flask run --host=0.0.0.0
Traceback (most recent call last):
File "/usr/local/bin/flask", line 5, in <module>
from flask.cli import main
File "/usr/local/lib/python3.8/dist-packages/flask/__init__.py", line 7, in <module>
from .app import Flask as Flask
File "/usr/local/lib/python3.8/dist-packages/flask/app.py", line 27, in <module>
from . import cli
File "/usr/local/lib/python3.8/dist-packages/flask/cli.py", line 17, in <module>
from .helpers import get_debug_flag
File "/usr/local/lib/python3.8/dist-packages/flask/helpers.py", line 14, in <module>
from werkzeug.urls import url_quote
ImportError: cannot import name 'url_quote' from 'werkzeug.urls' (/usr/local/lib/python3.8/dist-packages/werkzeug/urls.py)
```

```
pip install --upgrade Flask
```

Ainda assim foi necessário especificar uma versão fixa para o Werkzeug: No arquivo requirements.txt, adicionando uma versão específica para o Werkzeug, como Werkzeug==2.2.2.

Isso garantirá que a versão correta do Werkzeug seja instalada e resolva o problema.

6. Instalando o Redis, uma dependência do projeto:

```
sudo apt-get install redis -y
```

7. Iniciando o Redis:

```
systemctl start redis && systemctl status redis
```

8. Criando uma variável de ambiente para que a aplicação encontre o Redis:

```
export REDIS_HOST=localhost
```

9. Iniciando a aplicação:

```
flask run --host=0.0.0.0
```
15 changes: 15 additions & 0 deletions docs/day-2/TIMELINE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Timeline: Criação de uma Imagem Docker

- **Criação do Dockerfile**: O primeiro passo na criação de uma imagem Docker é criar um arquivo chamado Dockerfile. Esse arquivo contém as instruções necessárias para construir a imagem, como a escolha da base, a instalação de dependências e a configuração do ambiente.

- **Build da Imagem**: Após a criação do Dockerfile, é necessário executar o comando docker build para iniciar o processo de construção da imagem. Nesse momento, o Docker irá ler o arquivo Dockerfile e compilar a imagem conforme as instruções especificadas.

- **Tag da Imagem**: Após a conclusão do build, é possível adicionar tags à imagem para facilitar sua identificação e versionamento. Por exemplo, podemos adicionar uma tag indicando a versão da aplicação ou o ambiente de destino.

- **Push da Imagem**: Para disponibilizar a imagem em um repositório remoto, é necessário utilizar o comando docker push. Esse comando envia a imagem para um registro, como o Docker Hub ou um registro privado, permitindo que outras pessoas possam baixar e utilizar a imagem.

- **Verificação de Vulnerabilidades**: É importante garantir a segurança da imagem antes de disponibilizá-la para uso. Para isso, podemos utilizar ferramentas de verificação de vulnerabilidades, como o Trivy. Essas ferramentas analisam a imagem em busca de componentes com falhas de segurança conhecidas.

- **Assinatura com o Cosign**: Para adicionar uma camada extra de segurança, é possível assinar digitalmente a imagem utilizando o Cosign. Essa assinatura garante a integridade da imagem, permitindo que os usuários verifiquem a autenticidade e a procedência da mesma.

Esses são os principais marcos na criação de uma imagem Docker, desde a criação do Dockerfile até a assinatura com o Cosign. Cada passo é essencial para garantir a qualidade, segurança e confiabilidade da imagem.

0 comments on commit 6a05995

Please sign in to comment.