Não coloque dados sensiveis no docker-compose

Evite colocar dados sensíveis no Docker Compose

Esse arquivo é comumente versionado e compartilhado, você pode acabar expondo acidentalmente chaves e senhas e isso tudo acabar parando em um repositório público.

Além do problema de segurança, há uma camada de bagunça, pois em cada ambiente(desenvolvimento, testes e produção) você teria que ter um docker-compose.yml diferente ao invés de usar o mesmo e só definir as variáveis de ambiente no seu .env

Então eu devo colocar onde?

Coloque em um arquivo .env e coloque o .env em um .gitinore para não ser “commitado” junto do projeto. Para fazer a referência, utiliza o ${}

Eu mostro:

version: '3.8'

services:
  # Serviço de banco de dados falso
  fake-db:
    image: postgres:13
    environment:
      - POSTGRES_USER=${DB_USER}
      - POSTGRES_PASSWORD=${DB_PASSWORD}
      - POSTGRES_DB=${DB_DATABASE}
    ports:
      - "5432:5432"
    networks:
      - fake-network

No arquivo .env você faz assim:

DB_USER=usuarioAqui
DB_PASSWORD=senhaAqui
DB_DATABASE=nomeDoBancoDeDadosAqui

É uma boa prática utilizar variáveis de ambiente e espero que leve em consideração para colocar mais uma camada de segurança no seu projeto.

2 curtidas