Jenkins를 활용해 원격에서 서버 프로그램 빌드

wimes·2020년 4월 11일
1

CI/CD tutorial

목록 보기
7/7

본 포스팅은 동빈나 님의 Docker 활용 및 배포 자동화 실전 초급을 보고 정리한 글입니다.

  • 우선 Jenkins 정지와 현재 동작중인 php docker container를 지워주도록 하겠습니다.

    빨간색 X버튼 클릭

    php container 제거, jenkins container만 남도록 해줍니다.

      docker ps -a
      docker rm -f 6603f372f825
    

  • 그리고 jenkins > 구성에서 Build command를 수정해주도록 합니다.

    /home/Docker-practice 에서 git pull 받고

    기존에 혹시 php가 돌고있다면 rm 명령을 이용해 지워주도록 하고(또한 php가 동작하지 않다면 오류가 출력되는 것을 방지하기 위해 || true 명령어를 넣어 항상 실행하도록 합니다.)

    docker를 실행하는데 name tag 를 php로 주도록 합니다.

    cd /home/Docker-practice
    git pull
    docker rm -f php || true
    docker pull wimes/docker-practice
    docker run -p 80:80 -v /home/Docker-practice/Project:/var/www/html --name php wimes/docker-practice

  • 빌드를 원격으로 실행하기

    빌드 유발에서 빌드를 원격으로 유발을 선택해줍니다.

    token은 원래 어려운 문자를 넣어야 하지만 예제이므로 간단하게 "rebuild_token"이라고 적어주겠습니다.

    저장을 눌러줍니다.

  • jenkins container에서 github 계정정보 세팅

    gitHub의 repository가 private인 경우를 대비해 jenkins container에서 gitHub에 로그인해주도록 합니다.

    (jenkins build command로 git pull 을 넣었기 때문에 해줘야 합니다.)

      docker ps -a
      docker exec -it 15af99c8cd75 /bin/bash
      cd /home/Docker-practice/
    

    그리고 gitHub 계정정보를 넣어주는데 우리의 gitHub 계정정보가 container에 올라가 있다면 타인에게 노출될 위험이 있습니다. 따라서 7200초(2시간)동안만 존재하도록 설정해줍니다.("cache --timeout 7200")

    이와 같은 방법이 안전한 방법은 아닙니다. 원래는 github에서 access token을 받아서 access 하는 형식으로 진행되어야 합니다.

      git config --global credential.helper "cache --timeout 7200"
      git pull
      exit
    
  • 원격 토큰 이용

    Jekins > 구성 > 빌드유발 에서 URL을 찾아 볼 수 있습니다. 이를 복사해줍니다.

    이제 브라우저에서 {jekins url}/job/Example/build?token="TOKEN_NAME" 을 넣어줍니다.

    저의 경우에는 http://52.79.241.101:8080/job/Example/build?token=rebuild_token 입니다.

    이제 url로 접속 하는 것만으로도 build 가 진행되는 것을 볼 수 있습니다.

profile
iOS/Swift & Node.js Dev.

1개의 댓글

comment-user-thumbnail
2020년 4월 19일

ㅇㄷ

답글 달기