# 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