Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Variáveis de Ambiente e Configuração no Compose | Trabalhando com Docker Compose
Docker Essentials

bookVariáveis de Ambiente e Configuração no Compose

Utilizando Variáveis de Ambiente no docker-compose.yml

Variáveis de ambiente permitem criar configurações do Docker Compose flexíveis e reutilizáveis. Ao definir variáveis, evita-se inserir valores fixos, como portas, tags de imagem ou credenciais diretamente no arquivo docker-compose.yml. Em vez disso, essas variáveis são referenciadas, e o Docker Compose substitui seus valores em tempo de execução. Essa abordagem é especialmente útil ao implantar a mesma aplicação em diferentes ambientes, como desenvolvimento, teste ou produção.

Para definir e utilizar variáveis de ambiente no seu arquivo Compose, siga estes passos:

  • Armazene as variáveis de ambiente em um arquivo .env no mesmo diretório do seu docker-compose.yml;
  • Referencie as variáveis no arquivo Compose utilizando a sintaxe ${VARIABLE_NAME};
  • Substitua variáveis passando-as diretamente no shell ou como parte do seu pipeline de CI/CD.

Suponha que você queira configurar a senha do banco de dados e a porta da aplicação usando variáveis de ambiente. Crie um arquivo .env contendo:

DB_PASSWORD=supersecret
APP_PORT=8080

No seu docker-compose.yml, referencie essas variáveis da seguinte forma:

version: "3.8"
services:
  web:
    image: myapp:latest
    ports:
      - "${APP_PORT}:80"
    environment:
      - DB_PASSWORD=${DB_PASSWORD}

Ao executar docker-compose up, o Docker Compose irá substituir os valores do arquivo .env na configuração. Esse método mantém dados sensíveis ou específicos do ambiente fora do arquivo Compose e torna sua configuração mais portável.

Gerenciando Segredos e Dados Sensíveis em Arquivos Compose

Embora variáveis de ambiente sejam convenientes, nem sempre são a forma mais segura de lidar com informações sensíveis, como senhas, chaves de API ou certificados. Variáveis de ambiente podem ser expostas em logs, listas de processos ou controle de versão se não forem tratadas com cuidado. Para melhorar a segurança, é possível utilizar diversas técnicas para gerenciar segredos no Docker Compose:

  • Armazene valores sensíveis em um arquivo .env separado e garanta que esse arquivo seja excluído do controle de versão usando o .gitignore;
  • Utilize o suporte do Docker Compose para Docker secrets se estiver implantando com Docker Swarm, o que permite montar segredos com segurança como arquivos dentro dos containers;
  • Referencie segredos como arquivos no host e monte-os no container utilizando a chave volumes no seu arquivo Compose.

Exemplo: Para evitar expor uma senha de banco de dados, armazene-a em um arquivo chamado db_password.txt e monte-o no container:

services:
  db:
    image: postgres:latest
    volumes:
      - ./db_password.txt:/run/secrets/db_password
    environment:
      - POSTGRES_PASSWORD_FILE=/run/secrets/db_password

Essa abordagem mantém o segredo fora do arquivo Compose e das variáveis de ambiente, reduzindo o risco de exposição acidental. Sempre revise sua configuração e fluxos de trabalho para garantir que os segredos estejam protegidos e nunca faça commit de dados sensíveis no controle de versão.

question mark

Qual é a principal vantagem de utilizar variáveis de ambiente em um arquivo Docker Compose?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 3. Capítulo 4

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Awesome!

Completion rate improved to 7.14

bookVariáveis de Ambiente e Configuração no Compose

Deslize para mostrar o menu

Utilizando Variáveis de Ambiente no docker-compose.yml

Variáveis de ambiente permitem criar configurações do Docker Compose flexíveis e reutilizáveis. Ao definir variáveis, evita-se inserir valores fixos, como portas, tags de imagem ou credenciais diretamente no arquivo docker-compose.yml. Em vez disso, essas variáveis são referenciadas, e o Docker Compose substitui seus valores em tempo de execução. Essa abordagem é especialmente útil ao implantar a mesma aplicação em diferentes ambientes, como desenvolvimento, teste ou produção.

Para definir e utilizar variáveis de ambiente no seu arquivo Compose, siga estes passos:

  • Armazene as variáveis de ambiente em um arquivo .env no mesmo diretório do seu docker-compose.yml;
  • Referencie as variáveis no arquivo Compose utilizando a sintaxe ${VARIABLE_NAME};
  • Substitua variáveis passando-as diretamente no shell ou como parte do seu pipeline de CI/CD.

Suponha que você queira configurar a senha do banco de dados e a porta da aplicação usando variáveis de ambiente. Crie um arquivo .env contendo:

DB_PASSWORD=supersecret
APP_PORT=8080

No seu docker-compose.yml, referencie essas variáveis da seguinte forma:

version: "3.8"
services:
  web:
    image: myapp:latest
    ports:
      - "${APP_PORT}:80"
    environment:
      - DB_PASSWORD=${DB_PASSWORD}

Ao executar docker-compose up, o Docker Compose irá substituir os valores do arquivo .env na configuração. Esse método mantém dados sensíveis ou específicos do ambiente fora do arquivo Compose e torna sua configuração mais portável.

Gerenciando Segredos e Dados Sensíveis em Arquivos Compose

Embora variáveis de ambiente sejam convenientes, nem sempre são a forma mais segura de lidar com informações sensíveis, como senhas, chaves de API ou certificados. Variáveis de ambiente podem ser expostas em logs, listas de processos ou controle de versão se não forem tratadas com cuidado. Para melhorar a segurança, é possível utilizar diversas técnicas para gerenciar segredos no Docker Compose:

  • Armazene valores sensíveis em um arquivo .env separado e garanta que esse arquivo seja excluído do controle de versão usando o .gitignore;
  • Utilize o suporte do Docker Compose para Docker secrets se estiver implantando com Docker Swarm, o que permite montar segredos com segurança como arquivos dentro dos containers;
  • Referencie segredos como arquivos no host e monte-os no container utilizando a chave volumes no seu arquivo Compose.

Exemplo: Para evitar expor uma senha de banco de dados, armazene-a em um arquivo chamado db_password.txt e monte-o no container:

services:
  db:
    image: postgres:latest
    volumes:
      - ./db_password.txt:/run/secrets/db_password
    environment:
      - POSTGRES_PASSWORD_FILE=/run/secrets/db_password

Essa abordagem mantém o segredo fora do arquivo Compose e das variáveis de ambiente, reduzindo o risco de exposição acidental. Sempre revise sua configuração e fluxos de trabalho para garantir que os segredos estejam protegidos e nunca faça commit de dados sensíveis no controle de versão.

question mark

Qual é a principal vantagem de utilizar variáveis de ambiente em um arquivo Docker Compose?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 3. Capítulo 4
some-alt