flnxi-Wu/deploy-simple.ps1
WuYongJie d1c6efc79d
Some checks failed
CI Check / check (push) Has been cancelled
feat: NAS 部署与 Harbor 推送流程
2025-12-03 14:39:06 +08:00

63 lines
1.8 KiB
PowerShell

# Simple deployment script for flnxi_sucai
param(
[string]$Server = "45.249.208.118",
[string]$Username = "root",
[string]$ImageName = "flnxi-material",
[string]$Tag = "local-deploy",
[string]$RemotePath = "/root/deploy",
[string]$KeyPath = ""
)
Write-Host "Starting deployment..."
Write-Host "Server: $Server"
Write-Host "Image: $ImageName`:$Tag"
# Build Docker image
Write-Host "Building Docker image..."
docker build -t $ImageName`:$Tag -f Dockerfile .
if ($LASTEXITCODE -ne 0) {
Write-Host "Docker build failed!" -ForegroundColor Red
exit 1
}
# Tag and push to registry
$registryUrl = "${Server}:5000"
$registryImage = "${registryUrl}/youyidian/${ImageName}:${Tag}"
Write-Host "Tagging image..."
docker tag $ImageName`:$Tag $registryImage
if ($LASTEXITCODE -ne 0) {
Write-Host "Image tagging failed!" -ForegroundColor Red
exit 1
}
Write-Host "Pushing image to registry..."
docker push $registryImage
if ($LASTEXITCODE -ne 0) {
Write-Host "Image push failed!" -ForegroundColor Red
exit 1
}
# Deploy to server
Write-Host "Deploying to server..."
$deployCmd = "cd $RemotePath && docker-compose stop app && docker-compose rm -f app && docker pull $registryImage && docker tag $registryImage $ImageName`:$Tag && docker-compose up -d --no-deps app"
if ([string]::IsNullOrWhiteSpace($KeyPath)) {
# Use default SSH connection
ssh ${Username}@${Server} $deployCmd
} else {
# Use SSH key authentication
Write-Host "Using SSH key: $KeyPath"
ssh -i $KeyPath ${Username}@${Server} $deployCmd
}
if ($LASTEXITCODE -ne 0) {
Write-Host "Deployment failed!" -ForegroundColor Red
exit 1
}
Write-Host "Deployment completed successfully!" -ForegroundColor Green
Write-Host "Access URL: http://$Server:4320" -ForegroundColor Green