rag-backend/Jenkinsfile
向宁 819eac0edc fix: use network_mode host for container networking
ABP framework requires access to host network for DB/Redis connections
2026-05-17 19:42:53 +08:00

88 lines
2.5 KiB
Groovy

pipeline {
agent any
environment {
CI_REGISTRY = '192.168.1.154:31010'
DOCKER_IMAGE = 'docker/rag-backend'
DOCKER_TAG = "${BUILD_NUMBER}"
DEPLOY_DIR = '/home/xiangning/deploy/rag-backend'
}
stages {
stage('Checkout') {
steps {
echo '=== Checkout ==='
checkout scm
sh 'git log --oneline -5'
}
}
stage('Build') {
steps {
echo '=== Build Docker Image ==='
sh """
echo "Registry: ${CI_REGISTRY}"
echo "Image: ${DOCKER_IMAGE}:${DOCKER_TAG}"
docker build -t ${DOCKER_IMAGE}:${DOCKER_TAG} .
docker tag ${DOCKER_IMAGE}:${DOCKER_TAG} ${DOCKER_IMAGE}:latest
"""
}
}
stage('Push') {
steps {
echo '=== Push to Registry ==='
sh """
echo 'dockerxn001624.' | docker login -u docker --password-stdin ${CI_REGISTRY}
docker tag ${DOCKER_IMAGE}:${DOCKER_TAG} ${CI_REGISTRY}/${DOCKER_IMAGE}:${DOCKER_TAG}
docker tag ${DOCKER_IMAGE}:latest ${CI_REGISTRY}/${DOCKER_IMAGE}:latest
docker push ${CI_REGISTRY}/${DOCKER_IMAGE}:${DOCKER_TAG}
docker push ${CI_REGISTRY}/${DOCKER_IMAGE}:latest
"""
}
}
stage('Deploy') {
steps {
echo '=== Deploy ==='
sh """
mkdir -p ${DEPLOY_DIR}
cd ${DEPLOY_DIR}
cat > docker-compose.yml << 'DCOF'
services:
rag-backend:
image: ${CI_REGISTRY}/${DOCKER_IMAGE}:latest
container_name: rag-backend
network_mode: host
restart: unless-stopped
environment:
- ASPNETCORE_ENVIRONMENT=Production
- Kestrel__Endpoints__Http__Url=http://+:5211
- Kestrel__Endpoints__Grpc__Url=http://+:50051
volumes:
- ./logs:/app/logs
DCOF
docker compose pull
docker compose down --remove-orphans || true
docker compose up -d
docker image prune -f
docker compose ps
"""
}
}
}
post {
success {
echo '=== CI/CD SUCCESS ==='
}
failure {
echo '=== CI/CD FAILED ==='
}
always {
deleteDir()
}
}
}