이전 포스팅: Dockerizing a Node.js
이전에 만든 Docker를 이용해 Jenkins에서 자동배포를 해보겠습니다.
위 시리즈를 순서대로 보는 것을 추천합니다.
일단 본인 소유의 예제 프로젝트가 필요합니다.
깃허브에서 프로젝트 fork
를 합니다.
깃허브: Example Dockerizing Express Github
그러면 본인 소유의 repository가 생성되었을 것입니다.
Jenkins를 설치해야되는데 설치하기가 귀찮습니다.
Docker 이미지를 이용하여 간단하게 실행시켜봅시다.
먼저 빈 폴더를 생성
합니다.
Dockerfile을 생성
한 후 아래와 같이 입력
합니다.
FROM jenkins/jenkins:lts
USER root
RUN apt-get update && \
apt-get -y install apt-transport-https \
ca-certificates \
curl \
gnupg2 \
zip \
unzip \
software-properties-common && \
curl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo "$ID")/gpg > /tmp/dkey; apt-key add /tmp/dkey && \
add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/$(. /etc/os-release; echo "$ID") \
$(lsb_release -cs) \
stable" && \
apt-get update && \
apt-get -y install docker-ce
docker-compose.yml을 생성
합니다.
아래 문서를 보고 docker-compose를 구성
해줍니다.
Jenkins Docker Documentation
아래는 윈도우 환경일 경우입니다. 리눅스 경우는 volumes를 수정하시면 됩니다.
# docker-compose.yml
version: '3.7'
services:
jenkins:
build:
context: .
container_name: jenkins
user: root
ports:
- 8080:8080
- 50000:50000
container_name: jenkins
volumes:
- ./jenkins_home:/var/jenkins_home
- //var/run/docker.sock:/var/run/docker.sock
위와 같이 파일을 작성하고 해당 폴더에서 아래 명령어를 실행합니다.
docker-compose up
그럼 젠킨스가 실행됩니다.
http://localhost:8080
에 접속하고 설정을 해야합니다.
위 패스워드는 젠킨스 폴더에서 jenkins_home/secrets/initialAdminPassword
파일을 열면 확인할 수 있습니다.
Install suggested plugins
를 선택합니다.
조금만 기다리시면 플러그인 설치가 끝납니다.
계정 생성 해주시고 기본적인 설정을 진행합니다.
메인에서 새로운 Item
클릭 클릭합니다.
프로젝트 이름 입력 후 OK를 클릭합니다.
이 빌드는 매개변수가 있습니다
를 선택 후 위와 같이 입력합니다.
소스 코드 관리에서 git을 선택한 후 본인이 fork하여 생성된 repository url을 입력합니다.
빌드에서 Add build step
클릭 후 Execute shell
선택 후 위와 같이 입력합니다.
위 매개변수가 있습니다
에서 설정한 파라미터를 환경변수를 받은 후 build shell에서 사용할 수 있습니다. 또한 기본 환경변수를 제공합니다. (JOB_NAME: 작업이름, BUILD_NUMBER: 빌드번호)
docker rm 부분에서 | true
는 이미지가 없을 경우 삭제를 할 시 오류가 발생하기에 항상 오류가 안나도록 처리합니다.
Build with Parameters를 클릭합니다.
원하는 NODE_ENV를 입력합니다. (dev, test, production)
왼쪽 하단에 빌드번호와 함께 빌드가 완료된 파란색 동그라미가 나타납니다.
로컬에서 docker images
와 docker ps
를 실행하면 생성된 이미지와 실행된 컨테이너를 확인할 수 있습니다.
프로젝트 구성에서 위 Github hook ~~을 체크하고 저장합니다.
Add Webhook
클릭하고 비밀번호를 입력합니다.
위와 같이 설정 후 Add webhook
을 클릭합니다.
이제 github에 push할 시 github에서 jenkins로 webhook을 보내 자동 빌드를 합니다.
위의 기본 webhook 말고 다른 github 플러그인을 사용할 수 있습니다.