วิธีติดตั้ง SonarQube สำหรับการทำ Static Code Analysis ที่นิยมและจัดการง่ายที่สุด คือการรันผ่าน Docker เพราะแยกสภาพแวดล้อมชัดเจนและไม่ต้องปวดหัวกับการตั้งค่า Java บนเครื่องโดยตรง นี่คือวิธีติดตั้ง SonarQube Community Edition โดยใช้ Docker Compose ซึ่งจะติดตั้งตัว SonarQube ควบคู่กับ PostgreSQL เพื่อให้ระบบทำงานได้อย่างเสถียรในระยะยาว
เตรียม Docker Compose File
- สร้างโฟลเดอร์สำหรับโปรเจกต์นี้
- สร้างไฟล์ชื่อ
docker-compose.ymlแล้วใส่ Configurationservices: 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 ของเครื่อง Serversudo 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 นาที
เข้าใช้งานครั้งแรก
- เปิดเว็บเบราว์เซอร์แล้วไปที่: http://localhost:9000
- Login ด้วย
- Username: admin
- Password: admin
- เปลี่ยนรหัสผ่านใหม่
ขั้นตอนต่อไป
เมื่อเข้าใช้งานได้แล้ว คุณสามารถสร้างโปรเจกต์ใหม่ในหน้า Dashboard จากนั้น SonarQube จะให้ Token และคำสั่งสำหรับเอาไปรัน Sonar Scanner ในโปรเจกต์ของคุณ เพื่อสแกนโค้ดส่งกลับมาตรวจที่ Server นี้
อ่านเพิ่มเติม