Abordagem de configuração de 12 fatores com o Docker

Ainda existe alguma abordagem nativa ou comumente aceita para o uso de variáveis de ambiente para controlar o comportamento do Docker, ou seja, de uma maneira de 12 fatores?

O único método independente de idioma que eu já vi é poluir o comando docker run com as variáveis -e. A solução mais sustentável que eu já vi é usar uma combinação de cat e sed para gerar os parâmetros da CLI usando um arquivo .env:https://twitter.com/DataKyle/status/422843345120296960

Atualmente, usamos o Vagrant for dev, um provedor hospedado de CI / CD para teste e implantação, além do AWS Elastic Beanstalk como PAAS de preparo e produção. Nosso aplicativo tem mais de 100 parâmetros configuráveis, a maioria dos quais é definida como padrão, mas cada ambiente ainda precisa personalizar entre 10 e 20 deles. Parece muito hacky estar executando o docker com uma lista enorme de variáveis de linha de comando como essa.

Além disso, não permite que você pegue variáveis do host do docker (como as credenciais Redis ou Postgres pré-instaladas pelo provedor de IC), sem mais invasões.

Existe uma solução para isso que eu não encontrei? Ou isso é uma peça que faltava para o Docker? Ou isso é de alguma forma filosoficamente contra a filosofia Docker?

questionAnswers(1)

yourAnswerToTheQuestion