Files
chat/Jenkinsfile.web

44 lines
1.3 KiB
Plaintext

pipeline {
agent any
triggers {
pollSCM('* * * * *')
}
stages {
stage('Build Frontend Assets') {
steps {
dir('chat-web') {
sh '''
# 使用 docker build 避免 Jenkins 内 Docker in Docker 的挂载路径问题
echo "FROM node:18-alpine\nWORKDIR /app\nCOPY . .\nRUN npm install && npm run build" > Dockerfile.build
docker build -t chat-web-builder -f Dockerfile.build .
docker create --name temp-chat-web chat-web-builder
docker cp temp-chat-web:/app/dist ./
docker rm temp-chat-web
'''
}
}
}
stage('Build Web Image') {
steps {
dir('chat-web') {
sh '''
docker build -t chat-web:latest .
'''
}
}
}
stage('Deploy Web Container') {
steps {
sh '''
docker stop chat-web || true
docker rm chat-web || true
docker run -d --name chat-web -p 38080:80 chat-web:latest
'''
}
}
}
}