1
resposta

Credenciais do banco de dados

E qual seria a estratégia para não deixar as credenciais do banco de dados visíveis em nosso repositório? (no caso do curso, lá no arquivo docker-compose.yml) Isso seria feito usando segredos também?

1 resposta

Oi, Jonas. Tudo bem?

No caso de credenciais expostas no código da aplicação, você poderia usar uma substituição de texto. No caso do docker-compose.yml, você poderia colocar no local onde fica a senha um texto para ser subsituído, como PASSWORD, utilizar a action find-and-replace para detectar esse texto e trocar para um valor que esteja nos segredos do github. Algo assim:

docker-compose.yml

version: '3'
services:
  postgres:
    image: "postgres"
    environment:
      - POSTGRES_USER=root
      - POSTGRES_PASSWORD=root
      - POSTGRES_DB=root      
    ports:
      - "5432:5432"
    volumes:
      - /postgres-data:/var/lib/postgresql/data  

  pgadmin-compose:
    image: dpage/pgadmin4
    environment:
      PGADMIN_DEFAULT_EMAIL: "gui@alura.com"
      PGADMIN_DEFAULT_PASSWORD: "PASSWORD"
    ports:
      - "54321:80"
    depends_on:
      - postgres

E no go.yml adicionar um passo para substituir o conteúdo do arquivo com o segredo, tendo adicionado um segredo no github como PASSWORD_DB:

- name: Find and Replace
  uses: jacobtomlinson/gha-find-replace@v2
  with:
    find: "PASSWORD"
    replace: ${{ secrets.PASSWORD_DB }}
    regex: false

Uma outra possibilidade seria utilzar um gerenciador de segredos externo tipo o Vault se não quiser colocar o segredo dentro do github e utilizar uma action de integraçhttps://github.com/hashicorp/vault-action.

Mas acho que a abordagem geral seria essa de colocar um placeholder no arquivo que contem o segredo e substituir em tempo de execução da pipeline.

Espero ter ajudado. Bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software