scripts/win/docker/sql-container.ps1

# PowerShell script to download SQL Server Docker images based on input versions and create a container
param()

. "$env:BORG_ROOT\config\globalfn.ps1"

# Image used for sql server, for now always 2022


# Function to create a Docker container
function CreateSqlDockerContainer {
    param (
        [string]$ImageTag,
        [string]$ContainerName,
        [int]$HostPort
    )

    Write-Host "Creating Docker container: $ContainerName on port $HostPort from image: $ImageTag..." -ForegroundColor Cyan
    try {
        docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=$SqlPassword" -p "2022:$HostPort" --name "$ContainerName" --user root -d $ImageTag  
        Write-Host "Successfully created container: $ContainerName on port $HostPort" -ForegroundColor Green    
    }
    catch {
        Write-Host "Failed to create container: $ContainerName. Error: $_" -ForegroundColor Red
    }
}

CreateSqlDockerContainer -ImageTag $ImageTag -ContainerName $ContainerName -HostPort $HostPort

Write-Host("Create backup folder on $ContainerName")
docker exec $ContainerName mkdir -p $dockerBackupPath

Write-Host("Upload needed files")
docker cp "$dockerSqlFilesFolder\restore_database.sh" "$($dockerContainerName):$dockerBackupPath"
# docker cp "$dockerSqlFilesFolder\restore_database_mdf.sh" "$($dockerContainerName):$dockerBackupPath"
# docker cp "$dockerSqlFilesFolder\optimize_database.sh" "$($dockerContainerName):$dockerBackupPath"

# Giving rights to executables
$chmodCommand = "chmod +x $dockerBackupPath/restore_database.sh"
Write-Host "Making the script executable: $chmodCommand" -ForegroundColor Yellow
docker exec $ContainerName bash -c $chmodCommand