Profiles

Criação de perfis de execução.

Especificar somente um arquivo compose.yaml conforme abaixo:

services:
  kubenews:
    image: marcelodpbarbieri/kube-news:${KUBENEWS_TAG:-latest}
    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

  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

include:
  - ./kubenews.compose.yaml

volumes:
  postgre-docker-vol:

networks:
  kubenews-net:
    driver: bridge

Subida do Docker Compose para garantia do funcionamento:

Por exemplo, deseja-se que o container postgre seja criado somente nos ambientes de desenvolvimento e homologação:

Destaque para:

Tentativa de subir o Docker Compose sem especificar o profile:

Como não foi especificado o profile, o Docker Compose verifica a existência do depends_on. Faz-se necessário retirá-lo do arquivo compose.yaml porque nem sempre o container postgre será criado.

Arquivo compose.yaml:

Destaque para o serviço kubenews sem a especificação depends_on.

Novamente subir o Docker Compose sem a instrução do profile:

Somente o container kubenews foi criado.

Agora, subir o Docker Compose com a instrução do profile:

O container postgre é criado!

Cuidado com a especificação do depends_on quando for utilizado os profiles

Last updated