Files
vps_setup/apisix-stack/docker-compose.yml
T
2026-06-18 00:01:35 +07:00

102 lines
2.5 KiB
YAML

networks:
apisix_net:
driver: bridge
services:
# 1. Cơ sở dữ liệu cấu hình cho APISIX
etcd:
image: bitnamilegacy/etcd:3.5.11
container_name: apisix-etcd
restart: always
volumes:
- etcd_data:/bitnami/etcd
environment:
ETCD_ENABLE_V2: "true"
ALLOW_NONE_AUTHENTICATION: "yes"
ETCD_ADVERTISE_CLIENT_URLS: "http://etcd:2379"
ETCD_LISTEN_CLIENT_URLS: "http://0.0.0.0:2379"
networks:
- apisix_net
# 2. Apache APISIX Gateway
apisix:
image: apache/apisix:3.16.0-debian
container_name: apisix-gateway
user: "root"
restart: always
volumes:
- ./apisix_conf/config.yaml:/usr/local/apisix/conf/config.yaml
depends_on:
- etcd
networks:
- apisix_net
ports:
- "9080:9080" # HTTP Traffic
- "9443:9443" # HTTPS Traffic
- "9180:9180" # Admin API
# 3. APISIX Dashboard (Đổi sang cổng 9090)
apisix-dashboard:
image: apache/apisix-dashboard:3.0.1-alpine
container_name: apisix-dashboard
restart: always
volumes:
- ./apisix_conf/dashboard_conf.yaml:/usr/local/apisix-dashboard/conf/conf.yaml:ro
- ./apisix_conf/schema.json:/usr/local/apisix-dashboard/conf/schema.json:ro
depends_on:
- etcd
networks:
- apisix_net
ports:
- "9090:9090"
# 4. Grafana Loki (Đổi sang cổng 9100)
loki:
image: grafana/loki:3.0.0
container_name: apisix-loki
restart: always
volumes:
- loki_data:/tmp/loki
command: -config.file=/etc/loki/local-config.yaml
networks:
- apisix_net
# 5. Promtail (Thu thập log gửi sang Loki)
promtail:
image: grafana/promtail:3.0.0
container_name: apisix-promtail
restart: always
volumes:
- ./promtail_conf/promtail-config.yaml:/etc/promtail/config.yml:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
command: -config.file=/etc/promtail/config.yml
depends_on:
- loki
networks:
- apisix_net
# 6. Grafana (Đổi sang cổng 9300)
grafana:
image: grafana/grafana:11.0.0
container_name: apisix-grafana
restart: always
environment:
- GF_SECURITY_ALLOW_EMBEDDING=true
ports:
- "9300:3000"
volumes:
- grafana_data:/var/lib/grafana
- ./grafana_conf/provisioning:/etc/grafana/provisioning:ro
depends_on:
- loki
networks:
- apisix_net
volumes:
etcd_data:
driver: local
loki_data:
driver: local
grafana_data:
driver: local