Docker-compose를 활용해 Sonarqube를 설치하는 방법은 아래 글을 참고 바란다.

docker-compose로 sonarqube 설치하기

1. 개요


소나큐브같은 서비스를 docker-compose를 통해서 설치했더라도 서버가 재기동되면 사용자가 명령어를 통해 재기동을 시켜야 한다.
이번 가이드에서는 그런 수고를 줄이고자 서비스로 등록해 서버가 재기동되더라도 알아서 올라오도록 설정해 보자.

2. 가이드


1. 서비스 등록 sh 파일 만들기

/etc/init.d 하위에 아래 파일을 생성한다.

sudo vim sonarqube

(sonarqube)

#!/bin/sh
# chkconfig: 2345 90 90
set -e

# Define some variables
# Name of app ( bamboo, Confluence, etc )
APP=sonarqube
# Name of the user to run as
USER=ec2-user
# Location docker-compose file directory
BASE=/home/ec2-user/sonar/docker-compose

case "$1" in
  # Start command
  start)
    echo "Starting $APP"
    /bin/su - $USER -c "cd $BASE; docker-compose up -d"
    ;;
  # Stop command
  stop)
    echo "Stopping $APP"
    /bin/su - $USER -c "cd $BASE; docker-compose stop"
    echo "$APP stopped successfully"
    ;;
   # Restart command
   restart)
        $0 stop
        sleep 5
        $0 start
        ;;
  *)
    echo "Usage: /etc/init.d/$APP {start|restart|stop}"
    exit 1
    ;;
esac

exit 0
  • chkconfig: 2345 90 90 : 리눅스가 기돌될때의 옵션
    • 2345: 리눅스는 0~6까지의 Run Level이 있으며 상세옵션은 아래와 같다.
      여기서 우리는 2번 모드 및 5번 부팅모드에서 해당 스크립트가 동작할 것이다.
      |0|시스템종료|
      |1|단일 사용자모드, root만 사용, 원격 로그인 불가|
      |2|NFS를 지원하지 않는 다중 사용자 모드|
      |3|다중 사용자모드|
      |4|사용되지 않는 실행 모드|
      |5|x windows 부팅 (GUI 환경)|
      |6|시스템 재부팅 (Reboot)|

-   90 : 리눅스 기동 시 90번째 안으로는 실행된다는 의미
-   90 : 리눅스 종료 시 90번째 안으로 종료된다는 의미

2. 아래 명령어로 서비스를 등록하고 데몬을 재기동

# 등록
sudo systemctl enable sonarqube

# 데몬 재기동
sudo systemctl daemon-reload

# 서비스 기동
sudo service sonarqube start

# 서비스 종료
sudo service sonarqube stop

 

 

3. 마무리


sonarqube를 서비스로 등록하는 방법을 알아 보았다.
cent OS계열에서는 /etc/init.d에 서비스 동작 스크립트 등록 -> systemctl등을 통해 enable하는 것이 서비스 등록의 모든것이다.
(다른 방법도 있으나 여기서는 설명하지 않음)

'CICD > sonarqube' 카테고리의 다른 글

docker-compose로 sonarqube 설치하기  (0) 2019.11.12

+ Recent posts