Como Parametrizar o Compose com Variáveis de Ambiente

~/devops-kube-news$ vim compose.yaml

As variáveis são definidas com ${}:

services:
  postgre:
    image: postgres:${POSTGRES_TAG}
    ports:
      - 5432:5432
    environment:
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
      POSTGRES_USER: ${POSTGRES_USER}
      POSTGRES_DB: ${POSTGRES_DB}
    volumes:
      - postgre-docker-vol:/var/lib/postgresql/data
    networks:
      - kubenews-net
  kubenews:
    image: marcelodpbarbieri/kube-news:${KUBENEWS_TAG}
    build:
      context: ./src
      dockerfile: Dockerfile
    ports:
      - 8080:8080
    depends_on:
      - postgre
    environment:
      DB_DATABASE: ${POSTGRES_DB}
      DB_USERNAME: ${POSTGRES_USER}
      DB_PASSWORD: ${POSTGRES_PASSWORD}
      DB_HOST: postgre
    networks:
      - kubenews-net

volumes:
  postgre-docker-vol:

networks:
  kubenews-net:
    driver: bridge

Maneiras de Passar os Valores

Existem duas formas de passar os valores para as variáveis:

Comando de subida do Docker Compose

Para verificar as configurações aplicadas pode-se utilizar o docker compose config:

Arquivo de Ambiente

Utilizar um arquivo .env:

Por padrão o arquivo .env é considerado, porém também pode ser especificado caso queira utilizar arquivos de ambiente diferentes (i.e., dev.env, hom.env, prd.env etc.)

Valores Padrão

Caso não sejam definidos valores para as variáveis de ambiente podem ser considerados valores padrão utilizando :- ficando ${KUBENEW_TAG:-latest}.

Retirar a declaração da variável de ambiente do arquivo .env:

Editar o arquivo compose.yaml:

Destaque para:

Verificação da configuração:

Destaque para:

Construção de Imagem

Se a tag v6 não existir ele cria a imagem:

Last updated