인프런 커뮤니티 질문&답변
필요한 파일만 가지고 배포할 수 있나요?
작성
·
45
답변 2
0
안녕하세요, 이도원입니다.
AI 답변이 달려있어, 미확인으로 보이지 않았습니다. 답변이 늦어 죄송합니다.
만약, 말씀하신대로 일부의 코드만 선별적으로 취합하여 배포하려면, Shell Script난 Jenkinsfile을 통해 간단한 필터링으로 작업해 볼 수도 있습니다. 강의에서는 Jenkinsfile을 직접 프로그래밍 해서 처리하는 작업을 많이 넣지는 못했는데, 아래와 같이 선택해서 해 볼 수 있습니다. (아래 AI 답변처럼 필요한 파일을 별도의 폴더에 저장한 다음에 사용하는 것도 가능합니다)
아래 예시에서 사용한 rsync (remote sync)명령어는 특정 패턴의 파일만 포함하거나 제외하는 기능이 사용될 수 있는 명령어로써, Linux 시스템에서 파일을 효율적으로 전송하고 동기화하기 위한 유틸리티 입니다.
pipeline {
agent any
stages {
script {
// 1. JSP 파일만 배포하는 경우
echo "Deploying only JSP files..."
sh """
rsync -avzR --include='*.jsp' --include='*/' --exclude='*' \
./ ${REMOTE_USER}@${REMOTE_HOST}:${TARGET_DIR}
"""
// 2. 'admin-'으로 시작하는 파일만 배포하는 경우
echo "Deploying files starting with 'admin-'..."
sh """
rsync -avzR --include='admin-*' --include='*/' --exclude='*' \
./ ${REMOTE_USER}@${REMOTE_HOST}:${TARGET_DIR}
"""
}
}
}감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다.
brucehan_business님께서 문의하신 Jenkins를 통한 특정 파일의 자동 배포에 대한 질문에 답변 드리겠습니다.
Jenkins는 다양한 플러그인과 기능을 통해 원하는 파일만 선택적으로 자동 배포할 수 있는 기능을 제공합니다. 특히, Bitbucket과 연동하면 특정 브랜치나 커밋에 해당하는 파일들만 선택적으로 빌드 및 배포할 수 있습니다.
정적 파일이나 JSP와 같은 특정 파일만 배포하려면 Jenkins Pipeline에서 특정 파일을 선택하여 빌드하는 스크립트를 작성할 수 있습니다. 예를 들어, 특정 파일들만 복사한 후 목적지 서버로 전송하는 스크립트를 작성하여 사용할 수 있습니다. 이를 위해 scp 명령어 또는 FTP 플러그인을 사용할 수 있습니다.
해당 환경에 맞추어 Jenkinsfile을 다음과 같이 작성할 수 있습니다:
pipeline {
agent any
stages {
stage('Checkout') {
steps {
git 'https://bitbucket.org/yourrepo/yourproject.git'
}
}
stage('Deploy Selected Files') {
steps {
// 필요한 파일만 선택해서 복사
sh 'scp -r path/to/static/files user@server:/path/to/deploy/'
}
}
}
}
위 스크립트는 Bitbucket에서 코드를 체크아웃한 후, 필요한 특정 경로의 파일만 서버로 전송하는 방식입니다.
이와 관련하여 좀 더 구체적인 설정이 필요하시다면, Jenkins 문서나 해당 플러그인의 매뉴얼을 참고하시는 것을 추천드립니다. Jenkins 커뮤니티는 이러한 커스터마이징 작업에 있어 풍부한 자료를 제공하고 있습니다.





