SonarQube: ติดตั้งSonarQube: ติดตั้ง

วิธีติดตั้ง SonarQube สำหรับการทำ Static Code Analysis ที่นิยมและจัดการง่ายที่สุด คือการรันผ่าน Docker เพราะแยกสภาพแวดล้อมชัดเจนและไม่ต้องปวดหัวกับการตั้งค่า Java บนเครื่องโดยตรง นี่คือวิธีติดตั้ง SonarQube Community Edition โดยใช้ Docker Compose ซึ่งจะติดตั้งตัว SonarQube ควบคู่กับ PostgreSQL เพื่อให้ระบบทำงานได้อย่างเสถียรในระยะยาว


เตรียม Docker Compose File

  1. สร้างโฟลเดอร์สำหรับโปรเจกต์นี้
  2. สร้างไฟล์ชื่อ docker-compose.yml แล้วใส่ Configuration
    services:
     sonarqube:
      image: sonarqube:community
      container_name: sonarqube
      depends_on:
       - db
      ports:
       - "9000:9000"
      networks:
       - sonarnet
      environment:
       - SONAR_JDBC_USERNAME=sonar
       - SONAR_JDBC_PASSWORD=sonar_password
       - SONAR_JDBC_URL=jdbc:postgresql://db:5432/sonar
      volumes:
       - sonarqube_data:/opt/sonarqube/data
       - sonarqube_extensions:/opt/sonarqube/extensions
       - sonarqube_logs:/opt/sonarqube/logs
    
     db:
      image: postgres:15-alpine
      container_name: sonarqube_db
      networks:
       - sonarnet
      environment:
       - POSTGRES_USER=sonar
       - POSTGRES_PASSWORD=sonar_password
       - POSTGRES_DB=sonar
      volumes:
       - postgresql_data:/var/lib/postgresql/data
    
    networks:
     sonarnet:
      driver: bridge
    
    volumes:
     sonarqube_data:
     sonarqube_extensions:
     sonarqube_logs:
     postgresql_data:
    

ตั้งค่าระบบปฏิบัติการ

SonarQube ใช้ Elasticsearch อยู่เบื้องหลัง ซึ่งจำเป็นต้องใช้ค่า vm.max_map_count ที่สูงกว่าค่าเริ่มต้นของระบบ ไม่งั้น Container จะดับเอง

  • สำหรับ Linux
    ให้รันคำสั่งนี้ที่ Terminal ของเครื่อง Server
    sudo sysctl -w vm.max_map_count=524288
    sudo sysctl -w fs.file-max=131072

  • สำหรับ Docker Desktop
    ส่วนใหญ่ Docker Desktop จะจัดการตรงนี้ให้ หรือถ้าเจอปัญหา Container บล๊อก ให้ปรับในตัว WSL หรือผ่าน Docker Settings

สั่งรัน SonarQube

เปิด Terminal ในโฟลเดอร์ที่มีไฟล์ docker-compose.yml แล้วรันคำสั่ง
docker compose up -d
โน้ต: ในการรันครั้งแรก SonarQube จะใช้เวลา Setup ระบบภายในและเชื่อมต่อฐานข้อมูลประมาณ 1-2 นาที


เข้าใช้งานครั้งแรก

  1. เปิดเว็บเบราว์เซอร์แล้วไปที่: http://localhost:9000
  2. Login ด้วย
    • Username: admin
    • Password: admin
  3. เปลี่ยนรหัสผ่านใหม่

ขั้นตอนต่อไป

เมื่อเข้าใช้งานได้แล้ว คุณสามารถสร้างโปรเจกต์ใหม่ในหน้า Dashboard จากนั้น SonarQube จะให้ Token และคำสั่งสำหรับเอาไปรัน Sonar Scanner ในโปรเจกต์ของคุณ เพื่อสแกนโค้ดส่งกลับมาตรวจที่ Server นี้


อ่านเพิ่มเติม