eepson123tw / public-notes

some notes about the develop issue and can quickly review
0 stars 0 forks source link

How to make docker + grafana vitualization #11

Open eepson123tw opened 1 week ago

eepson123tw commented 1 week ago
FROM nginx:1.25.1

# Copy the main nginx configuration
COPY config/nginx.conf /etc/nginx/nginx.conf

# Copy all configuration files from conf.d
COPY config/conf.d/ /etc/nginx/conf.d/

# Copy SSL certificates
COPY [path].com.tw/*.pem /etc/nginx/[path].com.tw/
services:
  nginx:
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./config/nginx.conf:/etc/nginx/nginx.conf:ro
      - ./config/conf.d:/etc/nginx/conf.d:ro
      - ./[path].com.tw:/etc/nginx/[path].com.tw:ro
    networks:
      - app-network
    restart: always

  prometheus:
    image: prom/prometheus:latest
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml
    ports:
      - "9090:9090"
    networks:
      - app-network
    restart: always

  grafana:
    image: grafana/grafana:latest
    depends_on:
      - prometheus
    ports:
      - "3000:3000"
    environment:
      - GF_SECURITY_ADMIN_USER=admin
      - GF_SECURITY_ADMIN_PASSWORD=admin
    volumes:
      - grafana-storage:/var/lib/grafana
    networks:
      - app-network
    restart: always

  cadvisor:
    image: gcr.io/cadvisor/cadvisor:v0.47.0
    ports:
      - "8083:8083"
    volumes:
      - /:/rootfs:ro
      - /var/run:/var/run:ro
      - /sys:/sys:ro
      - /var/lib/docker/:/var/lib/docker:ro
      - /sys/fs/cgroup:/sys/fs/cgroup:ro
    networks:
      - app-network
    restart: always

  nginx-exporter:
    image: sophos/nginx-vts-exporter
    ports:
      - "9913:9913"
    networks:
      - app-network
    environment:
      - SCRAPE_URI=http://nginx:8080/status

networks:
  app-network:
    driver: bridge

volumes:
  grafana-storage:
eepson123tw commented 1 week ago

xxxx.conf ssl tag

server {
    client_max_body_size 150M;
    listen       80;
    listen       443 ssl;

    server_name  expert.[path].com.tw;

    ssl_certificate         /etc/nginx/[path].com.tw/fullchain11.pem;
    ssl_certificate_key     /etc/nginx/[path].com.tw/privkey11.pem;
    ssl_protocols TLSv1.3 TLSv1.2;

    error_log  /var/log/nginx/expert.[path].com.tw.log warn;

    location / {
        set $expert_demo_upstream 192.168.0.242;
        proxy_pass http://$expert_demo_upstream:80;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
        proxy_connect_timeout 300s;
        proxy_send_timeout 300s;
        proxy_read_timeout 300s;
    }
}