Include
Ele não utiliza um arquivo como base para extender, como no Extends. Ele importa o arquivo para a configuração do Docker Compose.
Renomear o arquivo compose.dev.yaml para kubenews.compose.yaml:
~/devops-kube-news$ mv compose.dev.yaml kubenews.compose.yaml
Transferir o serviço kubenews do arquivo compose.yaml para o arquivo kubenes.compose.yaml.
Conteúdo do arquivo kubenews.compose.yaml:
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
Conteúdo do arquivo compose.yaml:
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
include:
- ./kubenews.compose.yaml
volumes:
postgre-docker-vol:
networks:
kubenews-net:
driver: bridge
Destaque para:
include:
- ./kubenews.compose.yaml
Configuração do Docker Compose:
~/devops-kube-news$ docker compose config
name: devops-kube-news
services:
kubenews:
build:
context: /home/marcelo/devops-kube-news/src
dockerfile: Dockerfile
depends_on:
postgre:
condition: service_started
required: true
environment:
DB_DATABASE: kubenews
DB_HOST: postgre
DB_PASSWORD: kubenews
DB_USERNAME: kubenews
image: marcelodpbarbieri/kube-news:v1
networks:
kubenews-net: null
ports:
- mode: ingress
target: 8080
published: "8080"
protocol: tcp
postgre:
environment:
POSTGRES_DB: kubenews
POSTGRES_PASSWORD: kubenews
POSTGRES_USER: kubenews
image: postgres:13.16
networks:
kubenews-net: null
ports:
- mode: ingress
target: 5432
published: "5432"
protocol: tcp
volumes:
- type: volume
source: postgre-docker-vol
target: /var/lib/postgresql/data
volume: {}
networks:
kubenews-net:
name: devops-kube-news_kubenews-net
driver: bridge
volumes:
postgre-docker-vol:
name: devops-kube-news_postgre-docker-vol
Pode-se até mesmo especificar outro volume teste-vol no arquivo kubenews.compose.yaml:
~/devops-kube-news$ cat kubenews.compose.yaml
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
volumes:
- teste-vol:/teste
volumes:
teste-vol:
Verificar as configurações do Docker Compose:
~/devops-kube-news$ docker compose config
services:
kubenews:
build:
context: /home/marcelo/devops-kube-news/src
dockerfile: Dockerfile
depends_on:
postgre:
condition: service_started
required: true
environment:
DB_DATABASE: kubenews
DB_HOST: postgre
DB_PASSWORD: kubenews
DB_USERNAME: kubenews
image: marcelodpbarbieri/kube-news:v1
networks:
kubenews-net: null
ports:
- mode: ingress
target: 8080
published: "8080"
protocol: tcp
volumes:
- type: volume
source: teste-vol
target: /teste
volume: {}
postgre:
environment:
POSTGRES_DB: kubenews
POSTGRES_PASSWORD: kubenews
POSTGRES_USER: kubenews
image: postgres:13.16
networks:
kubenews-net: null
ports:
- mode: ingress
target: 5432
published: "5432"
protocol: tcp
volumes:
- type: volume
source: postgre-docker-vol
target: /var/lib/postgresql/data
volume: {}
networks:
kubenews-net:
name: devops-kube-news_kubenews-net
driver: bridge
volumes:
postgre-docker-vol:
name: devops-kube-news_postgre-docker-vol
teste-vol:
name: devops-kube-news_teste-vol
Destaque para:
volumes:
- type: volume
target: teste-vol
volume: {}
Last updated