94 lines
2.7 KiB
Groovy
94 lines
2.7 KiB
Groovy
pipeline {
|
|
agent any
|
|
|
|
environment {
|
|
CI_REGISTRY = '192.168.1.154:31010'
|
|
DOCKER_IMAGE = 'docker/file-system-server'
|
|
DOCKER_TAG = "${BUILD_NUMBER}"
|
|
DEPLOY_DIR = '/home/xiangning/deploy/file-system-server'
|
|
}
|
|
|
|
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:
|
|
file-system-server:
|
|
image: ${CI_REGISTRY}/${DOCKER_IMAGE}:latest
|
|
container_name: file-system-server
|
|
network_mode: host
|
|
restart: unless-stopped
|
|
environment:
|
|
- GIN_MODE=release
|
|
- SERVER_PORT=8090
|
|
- RUSTFS_ENDPOINT_URL=http://192.168.1.154:9000
|
|
- RUSTFS_ACCESS_KEY_ID=minioadmin
|
|
- RUSTFS_SECRET_ACCESS_KEY=minioadmin
|
|
- RUSTFS_REGION=us-east-1
|
|
- AUTH_API_KEY=file-system-api-key-2024
|
|
- GRPC_AUTH_ADDR=192.168.1.154:50051
|
|
- OTEL_ENDPOINT=192.168.1.154:4316
|
|
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()
|
|
}
|
|
}
|
|
}
|