Files
lpt-fe/Jenkinsfile-dev

42 lines
1.6 KiB
Plaintext

pipeline {
agent none
environment {
IMAGE_NAME = 'lpt-fe-dev:0.0'
CONTAINER_NAME = 'LPT_FE-dev'
CONTAINER_PORT = '80'
}
stages {
stage('构建 Docker 镜像') {
agent any
steps {
sh 'docker build --build-arg BUILD_MODE=dev -t $IMAGE_NAME .'
}
}
stage('部署容器') {
agent any
steps {
sh '''
docker network create traefik-public || true
docker rm -f $CONTAINER_NAME || true
docker run -d --name $CONTAINER_NAME \\
--network traefik-public \\
--label "traefik.enable=true" \\
--label "traefik.docker.network=traefik-public" \\
--label 'traefik.http.routers.lpt-fe-dev.rule=Host(`lpt-dev.cat-shark.xyz`)' \\
--label "traefik.http.routers.lpt-fe-dev.entrypoints=websecure" \\
--label "traefik.http.routers.lpt-fe-dev.tls.certresolver=le" \\
--label "traefik.http.routers.lpt-fe-dev.service=lpt-fe-dev" \\
--label "traefik.http.services.lpt-fe-dev.loadbalancer.server.port=$CONTAINER_PORT" \\
$IMAGE_NAME
'''
}
}
stage('健康检查') {
agent any
steps {
sh 'sleep 5 && docker exec $CONTAINER_NAME curl -f http://localhost:$CONTAINER_PORT/ || (docker logs $CONTAINER_NAME && exit 1)'
}
}
}
}