Build da Imagem do Tika Server - Dados Abertos de Feira

Fluxo para construcao e publicacao do container

1️⃣ - Objetivo

Criar a imagem Docker do Tika Server com as modificações necessárias para a utilização no projeto Dados Abertos de Feira (ver Dockerfile).

Será utilizada a imagem base do Apache Tika Server, travada na versão 2.0.0 com a instalação do pacote tesseract-ocr-por.

Obs: outros pacotes podem ser instalados em virtude de vulnerabilidades encontradas.

2️⃣ - Etapas do CI

O CI usado é o próprio GitHub Actions, composto de três arquivos:

📄 main.yml

O arquivo main.yml é composto por quatro jobs básicos:

  • job 01 - Lint do Dockerfile
  • job 02 - Teste do container
  • job 03 - Scan da Imagem
  • job 04 - Build e envio para o Docker Hub

fluxo-ci

Todos as etapas estão interligadas, conforme imagem acima, de forma que o estágio seguinte só executa se o anterior concluir com sucesso. Os três primeiros executam em todo push e pull request gerado no repositório. A quarta etapa só executa na geração de releases.

🔹 job 01 - Lint do Dockerfile

Esse job utiliza dois steps:

🔹 job 02 - Teste do container

Esse job utiliza quatro steps:

🔹 job 03 - Scan de Vunerabilidades

Esse job utiliza três steps:

🔹 job 04 - Build e envio para o Docker Hub

Esse job utiliza sete steps:

📄 scan-image-cron.yml

Este CI rodará usando o recurso do cron. Deste modo, foi configurado o scan da imagem uma vez por semana.

📄 notification.yml

Este CI também ocorrerá semanalmente, haja visto que ele é disparado com o scan semanal, conforme seção anterior. Caso o scan encontre vulnerabilidade, o job de notificação é executado e envia uma mensagem no canal do Discord da mentoria.

3️⃣ - Requisitos

Informar a versão do TIKA Server através do ARG TIKA_VERSION

Necessário ter cadastrados no secrets:

Variável Descrição
DOCKERHUB_USERNAME Usuario do Docker
DOCKERHUB_TOKEN Token do Usuario
DOCKERHUB_ORGANIZATION nome do registry