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