준비사항
1. Jenkins 서버에 Docker Server 설치
2. Github에 레포지토리 생성하기
Github 저장소 만들어서 애플리케이션 업로드 하기
Github 저장소를 만들게 되면 다음과 같은 파일들을 Github에 업로드 해야합니다.
소스 원본을 보고 싶으시면 저의 Github를 참고해주세요.
https://github.com/armyost/testPagePy.git
※ 위 Github의 소스는 이 설명에서 다루는 ./deployment 와 구성요소가 다릅니다. ./app경로의 파이썬 소스만 사용하시고, ./deployment의 파일은 아래 가이드를 따라서 생성하시기 바랍니다.
소스 구조는 다음과 같습니다.
./app은 파이썬 페이지 소스입니다.
./deployment는 Docker와 Jenkins를 위한 파일로 구성되어있습니다.
그러면 deployment용 파일을 만들어 보겠습니다.
1) Dockerfile
FROM python:3.8
LABEL maintainer="armyost@naver.com"
COPY . /app/server
WORKDIR /app/server
EXPOSE 80
RUN pip3 install -r ./deployment/requirements.txt
ENTRYPOINT ["python", "run.py"]
2) Jenkinsfile
node {
stage('Clone repository') {
checkout scm
}
stage('Build image') {
sh "docker build -f ./deployment/Dockerfile -t armyost/hellopython:$BUILD_NUMBER ."
}
}
~
3) requirements.txt
flask
업로드할 python 소스와 deployment소스를 모두 준비했다면 이제 github에 업로드합니다.
$git add .
$git status
$git commit -m "commit for upload"
$git push origin +master
위 커맨드는 이미 Github에 레포지토리가 있고 clone이 되어 있는 상태임을 가정한 것입니다.
Jenkins 구성요소 설치
Jenkins에서 Docker 이미지를 빌드하기 위해선 별도의 플러그인이 필요합니다. Jenkins 플러그인 설치 페이지로 이동 후 "Docker Pipeline""Docker API" "Docker" 등 도커관련 플러그인을 설치합니다.
Jenkins JOB 만들기
새로운 item으로 Pipeline을 선택합니다.
Github에 업로드한 소스를 불러올 수있는 레포지토리를 등록합니다.
Script Path를 주의해주세요!
그리고 저장을 눌러주세요.
이제 빌드를 위한 준비는 끝났습니다.
빌드를 수행해주세요. Jenkins파일의 파이프라인 스크립트를 보시면 Stage가 있기 때문에 StageView가 보입니다. 만약 StageView가 안보이면 Jenkins 플러그인을 설치해야합니다.
도커 서버에 해당 이미지파일리 빌드되어 있습니다.
'PaaS > CI CD' 카테고리의 다른 글
(Jenkins, Kubernetes) Jenkins와 Kubernetes 연동하기 (0) | 2021.07.21 |
---|---|
(Jenkins, Kubernetes) Kubernetes Cluster에 Jenkins Master 올리기 (0) | 2021.07.20 |
(Docker) Python 웹페이지를 띄울수 있는 Dockerfile만들어서 빌드 및 배포하기 (0) | 2021.07.07 |
(Jenkins) Jenkins 설치하기 (0) | 2021.07.04 |
배포전략 - Rolling, Blue/Green, Canary 배포 (0) | 2021.06.28 |