Luiz Souza

DevSecOps Specialist

Fim do autobuild gratuito do Docker Hub?!?? E agora?? [For Github users]

08/10/2021 Tech 2 minutos para ler

Então o pessoal do Docker encerrou o autobuild do Docker Hub para contas gratuitas depois do dia 18 de junho agora (de 2021) e eu que tinha uns três projetos buildando lá e no caso só me toquei hoje, quase 4 meses depois. 🙄

Depois da frustração de ter subido meu quarto projeto de imagem lá e só aí ter percebido que todos os meus projetos estavam sem builds recentes, comecei a analisar como resolver esse problema, e claro, achei a solução usando o Github Actions! E para isso foi mais simples do que pensei e o legal é que me aprofundei mais no mundo do CI/CD do Github. Então sem mais delongas, vamos colocar um projeto de imagem para o Docker Hub pra funcionar automagicamente com Github Actions!

Receita de bolo

Vamos lá, primeiramente precisamos no nosso projeto de um arquivo que podemos chamar de main.yaml (mas podemos colocar o nome que quisermos) e colocar ele numa pasta específica, isto é, na .github/workflows/ do teu projeto. Blza, mas vamos ao conteúdo deste arquivo, antes de subir ele para o Github:

name: Publish Docker image

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  push_to_registry:
    name: Push Docker image to Docker Hub
    runs-on: ubuntu-latest
    steps:
      - name: Check out the repo
        uses: actions/[email protected]
      
      - name: Log in to Docker Hub
        uses: docker/[email protected]
        with:
          username: ${{ secrets.DOCKER_USERNAME }}
          password: ${{ secrets.DOCKER_PASSWORD }}
      
      - name: Build and push Docker image
        uses: docker/[email protected]
        with:
          context: .
          push: true
          tags: '<docker-username>/<image-name>:latest'

Lembrando umas questões importantes aqui:

  1. Tanto a variável ${{ secrets.DOCKER_USERNAME }} quanto a variável ${{ secrets.DOCKER_PASSWORD }} pegam essas informações da área de secrets do teu repositório.
  2. Na chave tags onde aparece <docker-username> devemos alterar pelo usuário do Docker Hub e na <image-name> colocar o nome da nossa imagem.

Fazendo estes ajustes é só subir este novo arquivo para o repositório do Github e sair para o abraço!