From ce57479b932cb0bdaaead7c82086c8165a20cb03 Mon Sep 17 00:00:00 2001 From: 21in7 Date: Sun, 1 Mar 2026 16:31:34 +0900 Subject: [PATCH] =?UTF-8?q?ci:=20Jenkins=20pipeline=20+=20Gitea=20registry?= =?UTF-8?q?=20CI/CD=20=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Jenkinsfile 추가: Declarative Pipeline으로 빌드/push/cleanup 단계 구성 - docker-compose.yml 수정: build: . → Gitea Container Registry 이미지 참조 Made-with: Cursor --- Jenkinsfile | 54 ++++++++++++++++++++++++++++++++++++++++++++++ docker-compose.yml | 2 +- 2 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 Jenkinsfile diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000..1d9b597 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,54 @@ +pipeline { + agent any + + environment { + REGISTRY = '10.1.10.28:3000' + IMAGE_NAME = 'gihyeon/cointrader' + IMAGE_TAG = "${env.BUILD_NUMBER}" + FULL_IMAGE = "${REGISTRY}/${IMAGE_NAME}:${IMAGE_TAG}" + LATEST_IMAGE = "${REGISTRY}/${IMAGE_NAME}:latest" + GITEA_CREDS = credentials('gitea-registry-credentials') + } + + stages { + stage('Checkout') { + steps { + checkout scm + } + } + + stage('Build Image') { + steps { + sh "docker build -t ${FULL_IMAGE} -t ${LATEST_IMAGE} ." + } + } + + stage('Push to Gitea Registry') { + steps { + sh """ + echo ${GITEA_CREDS_PSW} | docker login ${REGISTRY} -u ${GITEA_CREDS_USR} --password-stdin + docker push ${FULL_IMAGE} + docker push ${LATEST_IMAGE} + """ + } + } + + stage('Cleanup') { + steps { + sh """ + docker rmi ${FULL_IMAGE} || true + docker rmi ${LATEST_IMAGE} || true + """ + } + } + } + + post { + success { + echo "Build #${env.BUILD_NUMBER} pushed: ${FULL_IMAGE}" + } + failure { + echo "Build #${env.BUILD_NUMBER} FAILED" + } + } +} diff --git a/docker-compose.yml b/docker-compose.yml index 4f27792..7ae9699 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,6 +1,6 @@ services: cointrader: - build: . + image: 10.1.10.28:3000/gihyeon/cointrader:latest container_name: cointrader restart: unless-stopped env_file: