version: "3" networks: environment: services: cadvisor: image: google/cadvisor:v0.33.0 container_name: environment-cadvisor restart: unless-stopped command: --docker_only=true --store_container_labels=false ports: ["4100:8080"] volumes: - /:/rootfs:ro - /var/run:/var/run:rw - /sys:/sys:ro - /var/lib/docker/:/var/lib/docker:ro - /dev/disk/:/dev/disk:ro networks: [environment] privileged: true grafana: image: grafana/grafana:7.3.6 container_name: environment-grafana restart: unless-stopped ports: ["4101:3000"] volumes: - ./datasource.yaml:/etc/grafana/provisioning/datasources/monitoring.yaml - ./dashboards:/etc/grafana/provisioning/dashboards - ./data/grafana:/var/lib/grafana networks: [environment] user: "1000:1000" jaeger: image: jaegertracing/all-in-one:1.21.0 container_name: environment-jaeger restart: unless-stopped ports: ["6831:6831/udp", "6832:6832/udp", "14250:14250", "14269:14269", "4102:16686"] volumes: - ./data/jaeger:/badger networks: [environment] mem_limit: 512m environment: - SPAN_STORAGE_TYPE=badger - BADGER_EPHEMERAL=false - BADGER_DIRECTORY_KEY=/badger/key - BADGER_DIRECTORY_VALUE=/badger/data - BADGER_SPAN_STORE_TTL=168h0m0s user: "1000:1000" prometheus: image: prom/prometheus:v2.24.1 container_name: environment-prometheus restart: unless-stopped command: --config.file=/etc/prometheus/prometheus.yaml --web.route-prefix=/ --storage.tsdb.path=/prometheus --storage.tsdb.retention.time=30d --web.enable-lifecycle --web.enable-admin-api ports: ["4103:9090"] volumes: - ./prometheus.yaml:/etc/prometheus/prometheus.yaml - ./data/prometheus:/prometheus networks: [environment] user: "1000:1000" mem_limit: 512m loki: image: grafana/loki:2.1.0 container_name: environment-loki restart: unless-stopped ports: ["3100:3100"] volumes: - ./loki.yaml:/etc/loki/local-config.yaml - /var/log:/var/log:ro - ./data/loki:/loki networks: [environment] user: "1000:1000" opentelemetry-collector: image: otel/opentelemetry-collector:0.18.0 container_name: environment-opentelemetry-collector restart: unless-stopped command: --config=/conf/otel-collector.config.yaml ports: ["9464:9464", "55680:55680", "55681:55681"] volumes: - ./otel-collector.yaml:/conf/otel-collector.config.yaml networks: [environment] vector: image: timberio/vector:0.11.1-alpine container_name: environment-vector restart: unless-stopped ports: ["8383:8383", "8686:8686", "9160:9160", "4545:4545/udp"] volumes: - ./vector.toml:/etc/vector/vector.toml - /var/run/docker.sock:/var/run/docker.sock:ro networks: [environment] depends_on: [loki, prometheus] mem_limit: 100m apollo: image: nobodyiam/apollo-quick-start container_name: environment-apollo depends_on: - apollo-db ports: - "4104:8080" - "4105:8090" - "4106:8070" networks: [environment] links: - apollo-db apollo-db: image: mysql:5.7 container_name: environment-apollo-db environment: TZ: Asia/Shanghai MYSQL_ALLOW_EMPTY_PASSWORD: 'yes' networks: [environment] depends_on: - apollo-dbdata ports: - "4107:3306" volumes: - ./sql:/docker-entrypoint-initdb.d volumes_from: - apollo-dbdata apollo-dbdata: image: alpine:latest container_name: environment-apollo-dbdata networks: [environment] volumes: - /var/lib/mysql mongodb: image: docker.io/bitnami/mongodb:4.4 container_name: environment-mongodb environment: # - MONGODB_ENABLE_IPV6=yes - ALLOW_EMPTY_PASSWORD=yes ports: - "4108:27017" networks: [environment] volumes: - './data/mongodb:/bitnami/mongodb' redis: image: docker.io/bitnami/redis:6.2 container_name: environment-redis environment: # ALLOW_EMPTY_PASSWORD is recommended only for development. # - REDIS_DISABLE_COMMANDS=FLUSHDB,FLUSHALL - ALLOW_EMPTY_PASSWORD=yes ports: - '4109:6379' volumes: - './data/redis:/bitnami/redis/data'