63 lines
1.8 KiB
PowerShell
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
|
|
|