3
respostas

Variaveis Docker

Prezados,

Qual é a melhor forma de configurar o código para que o mesmo seja trabalhado com bases de dados diferentes e outras variáveis referentes a produção/homologação/desenvolvimento.

A definição é realizada no Dockerfile mesmo? Há alguma forma elegante de se tratar estes parâmetros da aplicação?

Desde já agradeço.

Atenciosamente Euller Cristian

3 respostas

Oi Euller, eu gosto da ideia de ter um env_file onde posso tanto passar para no Dockerfile, quanto do docker-compose.yml quanto até mesmo pra aplicação caso seja necessário.

Assim você garante que o que mudar nesse arquivo, muda pra todos os programas que usam esse arquivo.

O que acha?

Wanderson, boa tarde,

Poderia me mostrar por favor como ficaria o uso so env_file no docker-compose e no Dockerfile por favor?

Desde já agradeço.

Hm, pelo que vi, você não tem uma instrução de env_file para o dockerfile, então você ia precisar definir cada uma delas pela instrução env mesmo ou colocar uma instrução de leitura de arquivo direto no CMD como um dos passos do build da imagem.

No docker-compose, dentro da chave do serviço, você pode colocar um env_file apontando pra um arquivo com todas as definições de variáveis de ambiente que devem estar disponíveis dentro do container.

version: "3"
services:
  app:
    image: node:8
    env_file: .env

dessa forma, o docker-compose vai ler o arquivo .env no meu diretório e configurar as variáveis que vão estar no formato já conhecido: chave = valor.

MYSQL_DATABASE=instalura

Se as variáveis que você precisa, só precisam estar dentro do container, o docker-compose resolve seu problema. Se precisar delas dentro do build, ai você vai precisar de outra estratégia como mencionei acima.