Na segunda parte, continuaremos a explorar o fluxo de trabalho que desenvolvi para Continuous Integration (CI) utilizando GitHub Actions. Se você acompanhou o primeiro post, já está familiarizado com o contexto geral e pode acessar o repositório do projeto através do link. Neste post, vou guiar passo a passo na configuração e execução da montagem automática de uma imagem Docker, além de mostrar como fazer a verificação de segurança utilizando Docker Scout.
O básico de como entender um Action do GitHub pode ser entendido no meu post anterior. Neste serei mais sucinto por praticidade. Segue o código e explicação de cada action utilizado.
name: Build Image and Run Image Scan
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4.1.1
- name: Set up Docker
uses: docker-practice/actions-setup-docker@v1
with:
docker_version: '20.10.7'
- name: Build Docker Image
run: docker build -f Dockerfile -t myapp:latest .
- name: Docker login
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASS }}
- name: Docker Scout Install
run:
curl -sSfL https://raw.githubusercontent.com/docker/scout-cli/main/install.sh | sh -s --
- name: Docker Scout Run
run:
docker scout quickview
docker scout cves
Checkout code: Clona o repositório do GitHub na máquina virtual de execução, permitindo que o restante do fluxo de trabalho tenha acesso aos arquivos do repositório.
Set up Docker: Esta action configura o ambiente Docker na máquina virtual de execução. Ela utiliza uma action chamada
actions-setup-dockerna versão 1, especificando a versão do Docker que será usada (20.10.7, neste caso).Build Docker Image: Esta action executa o comando
docker buildpara construir uma imagem Docker usando o arquivoDockerfileno diretório raiz do repositório. A imagem resultante recebe o nomemyappcom a taglatest.Docker login: Esta action faz o login no Docker Hub para autenticar o acesso ao registro de contêineres. Ela utiliza a action
docker/login-actionna versão 3 e faz uso de credenciais armazenadas como secrets no repositório (DOCKER_USERNAME e DOCKER_PASS).- Para criar as credenciais. Siga os 3 passos abaixo. O nome pode ser qualquer um da sua escolha, e o conteúdo é únicamente a senha para realizar login no seu DOCKER HUB.

- Para criar as credenciais. Siga os 3 passos abaixo. O nome pode ser qualquer um da sua escolha, e o conteúdo é únicamente a senha para realizar login no seu DOCKER HUB.
Docker Scout Install: Instala a ferramenta Docker Scout na máquina virtual de execução. O comando curl baixa o script de instalação
install.shdo repositório do Docker Scout e o executa.Docker Scout Run: Esta action executa comandos da ferramenta Docker Scout para realizar verificações de segurança na imagem Docker construída. Os comandos
docker scout quickviewedocker scout cvessão utilizados para visualizar informações rápidas e listar vulnerabilidades conhecidas na imagem, respectivamente.
Em conclusão, neste segundo post, exploramos a integração do Static Application Security Testing (SAST) com a ferramenta Bandit. Demonstrei como configurar a análise de segurança estática do código-fonte do projeto, visando identificar potenciais vulnerabilidades de segurança. Ao implementar essa etapa adicional no fluxo de trabalho, a robustez e a confiabilidade do processo de integração contínua é maior, garantindo a detecção precoce de possíveis falhas de segurança (SHIFT LEFT). Com essas práticas em vigor, o ambiente fica mais preparado para fornecer software mais seguro e resiliente.