OSS Drone CI 구축 방법

소개



Drone은 OSS 버전클라우드 버전에서 제공되는 CI 도구입니다.



이번에는 OSS 버전의 Drone을 시작하고 Github (Enterprise)와 연동했으므로 그 절차를 정리합니다.

자쿠자쿠 가면 15분 정도로 Drone 기동과 Github 제휴 인증까지 갈 수 있다고 생각합니다.

※Docker 자체의 환경 구축이 끝나지 않은 분은, Docker를 Mac에 설치 를 참고해 주세요.

또한 @ y_ 중얼거림에서 개발 한 yaritori - 메일 공유 시스템도 좋으면 방문하십시오

docker-compose.yml 만들기



적절한 디렉토리 (이번에는 drone라고 함)에 docker-compose.yml를 만듭니다.
$ mkdir drone && cd drone
$ vi docker-compose.yml

docker-compose.yml
version: '2'

services:
  drone-server:
    image: drone/drone:0.7.3
    ports:
      - 80:8000
    volumes:
      - ./drone:/var/lib/drone/
    restart: always
    environment:
      - DRONE_OPEN=true # ユーザ登録を可能にする
      - DRONE_HOST=${DRONE_HOST} # 後述
      - DRONE_GITHUB=true # Githubを使用する
      - DRONE_GITHUB_URL=${DRONE_GITHUB_URL} # Github Enterpriseを使用している場合に設定する
      - DRONE_GITHUB_CLIENT=${DRONE_GITHUB_CLIENT} # 後述
      - DRONE_GITHUB_SECRET=${DRONE_GITHUB_SECRET} # 後述
      - DRONE_SECRET=${DRONE_SECRET} # 後述
      - DRONE_GITHUB_PRIVATE_MODE=true # Github Enterpriseをプライベートモードで動かしている場合はtrueにする

  drone-agent:
    image: drone/drone:0.7.3
    command: agent
    restart: always
    depends_on:
      - drone-server
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    environment:
      - DRONE_SERVER=ws://drone-server:8000/ws/broker
      - DRONE_SECRET=${DRONE_SECRET}

Drone 시작


$ docker-compose up

이 상태에서 http://localhost/에 액세스하면 ...



이제 작동을 확인했습니다

ngrok로 로컬과 글로벌을 연결



Github과의 연동에는 Oauth 인증이 필요합니다.
이 때 콜백 URL이 전역이 아니면 요청을받지 못하기 때문에,
ngrok 사용법 (windows, mac) - Qiita
참고로 ngrok에서 글로벌 URL을 가져옵니다.

환경 변수 설정


docker-compose.yml와 같은 디렉터리에 .env를 만듭니다.

.env
DRONE_GITHUB_URL=使用しているドメイン # ex) https://your-domain.com
DRONE_GITHUB_CLIENT=Githubで取得
DRONE_GITHUB_SECRET=Githubで取得
DRONE_SECRET=ランダムな文字列
DRONE_HOST=ngrokで取得したURL
  • DRONE_GITHUB_CLIENT 및 DRONE_GITHUB_SECRET

  • htps : // 기주 b. 코 m / 세팅 gs / ゔ ぇぺ에서
  • (enterprise 버전을 사용하는 경우 FQDN을 변경하여 액세스)

  • DRONE_SECRET
  • 임의의 문자열. 이 근처를 참고에서 생성

  • DRONE_HOST
  • Drone 서버의 공용 주소 (여기서는 ngrok에서 얻은 URL) 설정
  • Github의 상태를 업데이트하는 데 사용됨 (참고)


  • Github에 애플리케이션을 등록할 때의 참고





    로그인



    https://{ngrok에 할당된 호스트 이름}.ngrok.io/login
    부터 애플리케이션을 인증하면 연동 가능한 상태가 됩니다



    끝에



    OSS판 Drone을 사용하면 온프레미스 환경에서의 운용도 가능합니다.
    Github Enterprise나, 닫힌 네트워크내에서의 CI로서의 유효 활용 등 여러가지 시험해 봐 주셨으면 합니다.

    좋은 웹페이지 즐겨찾기