kv-tube/deploy-docker.ps1
2026-01-01 20:08:35 +07:00

63 lines
2.1 KiB
PowerShell

#!/usr/bin/env pwsh
# deploy-docker.ps1 - Build and push KV-Tube to Docker Hub
$ErrorActionPreference = "Stop"
$DOCKER_USER = "vndangkhoa"
$IMAGE_NAME = "kvtube"
$TAG = "latest"
$FULL_IMAGE = "${DOCKER_USER}/${IMAGE_NAME}:${TAG}"
Write-Host "========================================" -ForegroundColor Cyan
Write-Host " KV-Tube Docker Deployment Script" -ForegroundColor Cyan
Write-Host "========================================" -ForegroundColor Cyan
Write-Host ""
# Step 1: Check Docker
Write-Host "[1/4] Checking Docker..." -ForegroundColor Yellow
try {
docker info | Out-Null
Write-Host " ✓ Docker is running" -ForegroundColor Green
} catch {
Write-Host " ✗ Docker is not running. Please start Docker Desktop." -ForegroundColor Red
exit 1
}
# Step 2: Build Image
Write-Host ""
Write-Host "[2/4] Building Docker image: $FULL_IMAGE" -ForegroundColor Yellow
docker build --no-cache -t $FULL_IMAGE .
if ($LASTEXITCODE -ne 0) {
Write-Host " ✗ Build failed!" -ForegroundColor Red
exit 1
}
Write-Host " ✓ Build successful" -ForegroundColor Green
# Step 3: Login to Docker Hub
Write-Host ""
Write-Host "[3/4] Logging into Docker Hub..." -ForegroundColor Yellow
docker login
if ($LASTEXITCODE -ne 0) {
Write-Host " ✗ Login failed!" -ForegroundColor Red
exit 1
}
Write-Host " ✓ Login successful" -ForegroundColor Green
# Step 4: Push Image
Write-Host ""
Write-Host "[4/4] Pushing to Docker Hub..." -ForegroundColor Yellow
docker push $FULL_IMAGE
if ($LASTEXITCODE -ne 0) {
Write-Host " ✗ Push failed!" -ForegroundColor Red
exit 1
}
Write-Host " ✓ Push successful" -ForegroundColor Green
Write-Host ""
Write-Host "========================================" -ForegroundColor Cyan
Write-Host " Deployment Complete!" -ForegroundColor Cyan
Write-Host " Image: $FULL_IMAGE" -ForegroundColor Cyan
Write-Host " URL: https://hub.docker.com/r/${DOCKER_USER}/${IMAGE_NAME}" -ForegroundColor Cyan
Write-Host "========================================" -ForegroundColor Cyan
Write-Host ""
Write-Host "To run: docker run -p 5001:5001 $FULL_IMAGE" -ForegroundColor White