Jenkins 파이프라인 작업을 설정하여 Django 이미지를 dockerhub에 배포

5794 단어
이것은 Deploy a Django app to AWS EC2 instance using a Jenkins server 시리즈의 두 번째 자습서입니다.

이 기사에서는 Jenkins에게 docker 명령 실행 권한을 부여하고 Django docker 빌드를 dockerhub에 배포하는 기본 파이프라인 작업을 설정하는 방법을 살펴보겠습니다.

1. docker 명령을 실행할 수 있도록 jenkins 사용자에게 액세스 권한을 부여합니다.



명령을 사용하여 드롭릿에 ssh합니다.

ssh root@YOUR-IP



명령을 사용하여 jenkins 컨테이너 ID를 가져옵니다.

 docker ps



아래와 비슷한 출력이 표시되어야 합니다.



컨테이너 ID가 있으면 이제 명령을 사용하여 컨테이너에 들어갈 수 있습니다.

docker exec -it CONTAINER_ID bash



실행docker하면 모든 docker 명령 목록을 볼 수 있어야 합니다.

이제 명령으로 Redis 이미지를 실행해 보겠습니다.

docker run redis



잠깐, 무슨 일이야? 다음 오류가 발생해야 합니다.



이 오류는 jenkins 사용자에게 특정 명령을 실행할 수 있는 권한이 없음을 의미합니다.

컨테이너 ID를 얻기 위해 먼저 docker ps를 실행하여 세션을 종료하고 루트 사용자로 컨테이너에 들어갑니다. 이제 다음을 통해 루트 사용자로 컨테이너에 들어갑니다.

docker exec -u 0 -it CONTAINER_ID bash



이제 다음을 통해 Jenkins 사용자에게 권한을 부여할 수 있습니다.

chmod 666 /var/run/docker.sock



모두 제대로 진행되었는지 확인하려면 ls -l var/run/docker.sock를 실행하면 아래 그림과 같은 출력이 표시됩니다.



모두 정상인지 확인하려면 jenkins 사용자로 jenkins 컨테이너에 들어가서 docker run redis 를 실행하십시오. 이전에 발생한 오류는 존재하지 않아야 하며 명령이 성공적으로 실행되어야 합니다.

2. Django 도커 이미지를 dockerhub에 배포하기 위한 파이프라인을 생성합니다.



젠킨스 페이지로 이동하여 새 파이프라인 작업을 만듭니다.



성공적으로 생성한 후 파이프라인 탭을 클릭하고 파이프라인 섹션까지 아래로 스크롤하여 리포지토리에 연결해야 합니다.



드롭다운에서 SCM 옵션의 파이프라인 스크립트를 선택하고 리포지토리 URL을 추가합니다.
github/gitlab 자격 증명을 비밀번호 옵션과 함께 사용자 이름으로 추가하고 JenkinsFile이 있는 분기를 추가해야 합니다.



Django 프로젝트에서 JenkinsFile이 있는지 확인하십시오. 이제 Jenkins 구성을 추가할 수 있습니다.

pipeline { 
    agent any 
    stages { 
        stage('Build') { 
            steps { 
                sh 'echo "Hello World"'
            }
        }
        stage('Done'){
            steps {
                echo " Wow! I'm done!"
            }
        }
        stage('Deploy staging ') { 
            steps { 
                echo 'I am deploying to a staging server
            }
        }

        stage ( 'Deploy prod') { 
            steps { 
                echo 'I am deploying to prod server

            }
        }
    }}



이제 코드를 버전 제어에 푸시하고 Jenkins 서버 웹 페이지로 이동하여 생성한 작업에 들어가서 지금 빌드 버튼을 클릭하여 빌드를 시작할 수 있습니다.



빌드 번호와 함께 빌드 상태를 볼 수 있어야 합니다. 빌드 번호를 클릭하면 빌드로 리디렉션됩니다.





콘솔 출력 정보를 확인하려면 콘솔 출력을 클릭하면 됩니다.

계속해서 Django 이미지를 빌드하고 dockerhub에 배포할 단계를 구성할 수 있습니다. 이 다음 단계를 위해 자격 증명과 자격 증명 바인딩 플러그인을 설치했는지 확인하십시오. JenkinsFile에서 액세스할 수 있도록 ID와 함께 도커 허브 자격 증명을 추가합니다.

pipeline { 
    agent any 
    stages { 
        stage('Build docker image') { 
            steps { 
                sh 'echo "Hello World"'
                script{ 
                //    
                withCredentials([ 
                    usernamePassword(credentials:'docker-hub-credentials', usernameVariable:USER, passwordVariable:PASSWORD)
                ]) { 
                    sh "docker build . -t YOUR_IMAGE_NAME"
                    sh "echo $PASSORD | docker login -u $USER --password-stdin"
                    sh "docker push YOUR_IMAGE_NAME"
                }
                }
            }
        }
    }
}



다음 기사에서 포괄적으로 논의할 새로운 개념인 withCredentials 도구를 도입했습니다.

이 단계에서 이제 디지털 바다 물방울에 Jenkins를 설정하고 이를 사용하여 Django 이미지를 Dockerhub에 배포했습니다. 다음 기사에서는 Groovy 스크립트 및 환경 변수를 사용하는 방법과 빌드를 자동으로 실행할 GitHub 트리거를 설정하는 방법을 다룰 것입니다.

건배.

좋은 웹페이지 즐겨찾기