1
0
Fork 0

added versioning to windows docker containers

This commit is contained in:
Christian Kühnel 2020-02-20 15:18:26 +00:00
parent ede0017017
commit 548e07d5d4
7 changed files with 36 additions and 15 deletions

View file

@ -1,7 +1,8 @@
# escape=`
# use windows server core image
FROM gcr.io/llvm-premerge-checks/agent-windows
ARG agent_windows_version
FROM gcr.io/llvm-premerge-checks/agent-windows:${agent_windows_version}
# install buildkite agent as described in the documentation
# https://buildkite.com/docs/agent/v3/windows

Binary file not shown.

View file

@ -1,7 +1,8 @@
# escape=`
# use windows server core image
FROM gcr.io/llvm-premerge-checks/agent-windows
ARG agent_windows_version
FROM gcr.io/llvm-premerge-checks/agent-windows:$agent_windows_version
# install java
RUN choco install -y openjdk
@ -17,9 +18,6 @@ RUN powershell -NoProfile -InputFormat None -Command `
RUN pip install gsutil
VOLUME C:\credentials
# configure gsutil
COPY .boto "C:\Users\ContainerAdministrator\.boto"
# install python dependencies for the scripts
RUN pip install -r https://raw.githubusercontent.com/google/llvm-premerge-checks/master/scripts/requirements.txt

Binary file not shown.

View file

@ -1,8 +1,8 @@
# escape=`
# use windows server core image
ARG version=ltsc2019
FROM mcr.microsoft.com/windows/servercore:$version
ARG windows_version=ltsc2019
FROM mcr.microsoft.com/windows/servercore:${windows_version}
# install chocolately as package manager
RUN powershell -NoProfile -InputFormat None -Command `

Binary file not shown.

View file

@ -17,21 +17,43 @@ param(
[Parameter(Mandatory=$true)][string]$IMAGE_NAME
)
New-Variable -Name ROOT_DIR -Value (Get-Item $PSScriptRoot).Parent.FullName
$ROOT_DIR=(Get-Item $PSScriptRoot).Parent.FullName
. ${ROOT_DIR}\scripts\common.ps1
$VERSION_FILE="VERSION"
# get config options
Get-Content "${ROOT_DIR}/k8s_config" | Foreach-Object{
Get-Content "${ROOT_DIR}\k8s_config" | Foreach-Object{
if (! $_.StartsWith('#') ){
$var = $_.Split('=')
New-Variable -Name $var[0] -Value $var[1]
}
}
New-Variable -Name QUALIFIED_NAME -Value "${GCR_HOSTNAME}/${GCP_PROJECT}/${IMAGE_NAME}"
$QUALIFIED_NAME="${GCR_HOSTNAME}/${GCP_PROJECT}/${IMAGE_NAME}"
Push-Location "$PSScriptRoot\$IMAGE_NAME"
$container_version=[int](Get-Content $VERSION_FILE)
$container_version+=1
$agent_windows_version=Get-Content "../agent-windows/$VERSION_FILE"
Write-Host "Building ${IMAGE_NAME}:${container_version}..."
Write-Host "Using windows-agent:${agent_windows_version}"
# TODO: get current Windows version number from host via "cmd /c ver"
# to solve these issues: https://stackoverflow.com/questions/43123851/unable-to-run-cygwin-in-windows-docker-container/52273489#52273489
docker build -t $IMAGE_NAME --build-arg version=10.0.17763.1039 .
docker tag $IMAGE_NAME $QUALIFIED_NAME
docker push $QUALIFIED_NAME
$windows_version="10.0.17763.1039"
Invoke-Call -ScriptBlock {
docker build . `
-t ${IMAGE_NAME}:${container_version} `
--build-arg windows_version=$windows_version `
--build-arg agent_windows_version=$agent_windows_version
}
Invoke-Call -ScriptBlock {
docker tag ${IMAGE_NAME}:${container_version} ${QUALIFIED_NAME}:${container_version}
}
Invoke-Call -ScriptBlock {
docker push ${QUALIFIED_NAME}:$container_version
}
$container_version | Out-File $VERSION_FILE
Pop-Location