/
Dockerfile
77 lines (65 loc) · 3.06 KB
/
Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# escape=`
ARG PIPX_HOME=c:\pipx
ARG PIP_DOWNLOAD_CACHE=c:/users/containeradministrator/appdata/local/pip
ARG FROM_IMAGE=mcr.microsoft.com/dotnet/framework/sdk:4.8
FROM ${FROM_IMAGE} AS certsgen
RUN certutil -generateSSTFromWU roots.sst
FROM ${FROM_IMAGE}
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop';"]
ARG CHOCOLATEY_SOURCE=https://chocolatey.org/api/v2
ARG ChocolateyEnvironmentDebug=false
ADD ci/docker/python/windows/tox/chocolatey/install_choco.ps1 choco/install_choco.ps1
RUN Set-ExecutionPolicy Bypass -Scope Process -Force; `
./choco/install_choco.ps1 -packageRepo $env:CHOCOLATEY_SOURCE ; `
if( -not ([string]::IsNullOrEmpty($Env:CHOCOLATEY_SOURCE ))) `
{ `
Write-Host "Adding $env:CHOCOLATEY_SOURCE to chocolatey sources" ; `
choco source add -n=CHOCOLATEY_SOURCE --priority=1 -s=\"$env:CHOCOLATEY_SOURCE\"; `
choco source remove -n=chocolatey ;`
}; `
Write-Host "Disabling Showing Download Progress" ; `
choco feature disable -n=showDownloadProgress ; `
Remove-Item -Force -Recurse ${Env:TEMP}\*
ADD ci/docker/python/windows/tox/chocolatey/packages.xml choco/packages.config
RUN C:\ProgramData\chocolatey\bin\choco.exe sources ; `
C:\ProgramData\chocolatey\bin\choco.exe install -y --stoponfirstfailure --no-progress --verbose choco/packages.config ;`
Remove-Item C:\Users\ContainerAdministrator\AppData\Local\Temp\chocolatey -Recurse ; `
refreshenv ; `
Remove-Item -Force -Recurse ${Env:TEMP}\* ; `
if (!(Test-Path 'C:\Program Files\Git\cmd\git.exe')) `
{ `
throw 'git.exe not found' ; `
}; `
Write-Host "Finished install packages with Chocolatey" \
ADD ci/docker/python/windows/tox/chocolatey/python.xml choco/python.config
RUN C:\ProgramData\chocolatey\bin\choco.exe install -y --stoponfirstfailure --no-progress --verbose choco/python.config ;`
Remove-Item C:\Users\ContainerAdministrator\AppData\Local\Temp\chocolatey -Recurse ; `
refreshenv ; `
Remove-Item -Force -Recurse ${Env:TEMP}\* ; `
py --list ;`
py -3.8 --version ; `
py -3.9 --version ; `
py -3.10 --version ; `
py -3.11 --version ; `
py -3.12 --version ; `
Write-Host "Installing Python with Chocolatey - Done"
RUN py -m pip install pip --upgrade; py -m pip install wheel; py -m pip wheel -w c:\wheels\ --no-cache-dir wheel
COPY --from=certsgen c:/roots.sst roots.sst
RUN certutil -addstore -f root roots.sst ; `
del roots.sst
ARG PIP_EXTRA_INDEX_URL
ARG PIP_INDEX_URL
COPY requirements-dev.txt c:/python_requirments/
COPY requirements/ c:/python_requirments/requirements
RUN python -m pip install pip --upgrade ; pip install --no-cache-dir -r c:/python_requirments/requirements-dev.txt
ARG PIP_DOWNLOAD_CACHE
RUN New-Item -type directory -path ${Env:PIP_DOWNLOAD_CACHE} -Force
ENV PIP_DOWNLOAD_CACHE=${PIP_DOWNLOAD_CACHE}
ARG PIPX_HOME
ENV PIPX_HOME=${PIPX_HOME}
ENV PIPX_BIN_DIR=${PIPX_HOME}\bin
RUN py -3 -m pip install --no-cache-dir pipx ; `
py -3 -m pipx ensurepath
RUN py -3 -m pipx install 'devpi-client<7.0'
WORKDIR C:/src
CMD tox --workdir ${Env:TEMP}\tox\ -vv --recreate