เราจะมาลองใช้ docker compose ในการติดตั้ง sonarqube ซึ่งเราจะใช้เป็น community version ใน rocky linux กัน
docker compose คือไฟล์ docker-compose.yml ไฟล์นี้จะเก็บการตั้งค่าทั้งหมดของ services (container) ที่เราต้องการรัน
หลักการทำงาน:
docker-compose up: คำสั่งนี้จะอ่านไฟล์ docker-compose.yml แล้วสร้าง (หรืออัปเดต) และสตาร์ท container ทั้งหมดที่กำหนดไว้
เพิ่ม -d (ย่อมาจาก detach) เป็น docker-compose up -d เพื่อให้ container ทำงานอยู่เบื้องหลัง (background) และเรายังสามารถใช้ terminal ต่อได้
docker-compose down: คำสั่งนี้จะหยุดและลบ container, network, และ volume (ที่เป็น default) ที่สร้างโดย docker-compose up
้เราจะสร้างไฟล์ docker-compose.yml สำหรับ sonarqube กัน
docker-compose.yml
version: "3"
services:
sonarqube:
image: sonarqube:lts-community
container_name: sonarqube
ports:
- "9000:9000"
**restart: always**
environment:
- SONAR_JDBC_URL=jdbc:postgresql://db:5432/sonar
- SONAR_JDBC_USERNAME=sonar
- SONAR_JDBC_PASSWORD=sonar
volumes:
- sonarqube_conf:/opt/sonarqube/conf
- sonarqube_data:/opt/sonarqube/data
- sonarqube_extensions:/opt/sonarqube/extensions
- sonarqube_logs:/opt/sonarqube/logs
depends_on:
- db
db:
image: postgres:12
container_name: sonarqube_db
**restart: always**
environment:
- POSTGRES_USER=sonar
- POSTGRES_PASSWORD=sonar
- POSTGRES_DB=sonar
volumes:
- postgresql:/var/lib/postgresql/data
volumes:
sonarqube_conf:
sonarqube_data:
sonarqube_extensions:
sonarqube_logs:
postgresql:
ก่อนที่เราจะสั่งให้ docker compose ทำงาน สำหรับ sonarqube เนื่องจากเป็นโปรแกรมที่ต้องใช้หน่วยความจำสูง เพราะมีการใช้งาน database และ elasticsearch เราจึงต้องกำหนดหน่วยความจำที่ใช้ได้ก่อน ด้วยคำสั่ง(ทำครั้งเดียวพอ)
sudo sysctl -w vm.max_map_count=262144
เราจะสั่ง run ด้วย command นี้ครับ
docker compose up -d
ลอง check ดูว่า มี container ถูกสร้างขึ้นมาหรือไม่ด้วยคำสั่ง
docker ps
จะเห็น container ถูกสร้างขึ้นมา 2 อัน คือ sonarqube และ postgres ตามที่เขียนไว้ในไฟลื docker-compose.yml
ลองใช้งานโดยเข้า url : http://localhost:9000
Top comments (0)