ΠΠ΄ΡΠ°Π²ΠΎ ΡΠ²ΠΈΠΌΠ°! ΠΠΎΡΠ΅ ΠΈΠΌΠ΅ ΡΠ΅ ΠΠ½Π΄ΡΠ΅Ρ ΠΈ ΡΠ°Π΄ΠΈΠΌ ΠΊΠ°ΠΎ ΠΠ΅Π²ΠΠΏΡ ΠΈΠ½ΠΆΠ΅ΡΠ΅Ρ Ρ ΠΠΊΠ½Π΅ΡΡΡ Ρ ΡΠ°Π·Π²ΠΎΡΠ½ΠΎΠΌ ΡΠΈΠΌΡ. ΠΠΎΡΠ° ΠΎΡΠ½ΠΎΠ²Π½Π° Π΄Π΅Π»Π°ΡΠ½ΠΎΡΡ ΡΠ΅ ΠΎΠ΄Π½ΠΎΡΠΈ Π½Π° ΠΈΠ·Π³ΡΠ°Π΄ΡΡ, ΠΏΠΎΡΡΠ°Π²ΡΠ°ΡΠ΅ ΠΈ ΠΏΠΎΠ΄ΡΡΠΊΡ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ° Ρ Π΄ΠΎΡΠΊΠ΅Ρ-Ρ ΠΏΠΎΠ΄ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΈΠΌ ΡΠΈΡΡΠ΅ΠΌΠΎΠΌ ΠΠΈΠ½ΡΠΊ (Ρ Π΄Π°ΡΠ΅ΠΌ ΡΠ΅ΠΊΡΡΡ ΠΠ‘). ΠΠ΅Π΄Π°Π²Π½ΠΎ ΡΠ°ΠΌ ΠΈΠΌΠ°ΠΎ Π·Π°Π΄Π°ΡΠ°ΠΊ ΡΠ° ΠΈΡΡΠΈΠΌ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈΠΌΠ°, Π°Π»ΠΈ ΡΠΈΡΠ½ΠΈ ΠΠ‘ ΠΏΡΠΎΡΠ΅ΠΊΡΠ° ΡΠ΅ Π±ΠΈΠΎ ΠΠΈΠ½Π΄ΠΎΠ²Ρ Π‘Π΅ΡΠ²Π΅Ρ ΠΈ ΡΠΊΡΠΏ Π¦++ ΠΏΡΠΎΡΠ΅ΠΊΠ°ΡΠ°. ΠΠ° ΠΌΠ΅Π½Π΅ ΡΠ΅ ΠΎΠ²ΠΎ Π±ΠΈΠ»Π° ΠΏΡΠ²Π° Π±Π»ΠΈΡΠΊΠ° ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΡΠ° ΡΠ° Π΄ΠΎΡΠΊΠ΅Ρ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈΠΌΠ° ΠΏΠΎΠ΄ ΠΠΈΠ½Π΄ΠΎΠ²Ρ ΠΠ‘-ΠΎΠΌ ΠΈ, ΡΠΎΠΏΡΡΠ΅, ΡΠ° Π¦++ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΠΌΠ°. ΠΠ°Ρ Π²Π°ΡΡΡΡΡΠΈ ΡΠΎΠΌΠ΅, ΠΈΠΌΠ°ΠΎ ΡΠ°ΠΌ Π·Π°Π½ΠΈΠΌΡΠΈΠ²ΠΎ ΠΈΡΠΊΡΡΡΠ²ΠΎ ΠΈ Π½Π°ΡΡΠΈΠΎ ΡΠ°ΠΌ ΠΎ Π½Π΅ΠΊΠΈΠΌ Π·Π°ΠΌΡΡΠ΅Π½ΠΎΡΡΠΈΠΌΠ° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΡΠΊΠΈΡ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ° Ρ ΠΠΈΠ½Π΄ΠΎΠ²Ρ-Ρ.
Π£ ΠΎΠ²ΠΎΠΌ ΡΠ»Π°Π½ΠΊΡ ΠΆΠ΅Π»ΠΈΠΌ Π΄Π° Π²Π°ΠΌ ΠΊΠ°ΠΆΠ΅ΠΌ ΡΠ° ΠΊΠ°ΠΊΠ²ΠΈΠΌ ΡΠ°ΠΌ ΠΏΠΎΡΠ΅ΡΠΊΠΎΡΠ°ΠΌΠ° ΠΌΠΎΡΠ°ΠΎ Π΄Π° ΡΠ΅ ΡΡΠΎΡΠΈΠΌ ΠΈ ΠΊΠ°ΠΊΠΎ ΡΠ°ΠΌ ΡΡΠΏΠ΅ΠΎ Π΄Π° ΠΈΡ ΡΠ΅ΡΠΈΠΌ. ΠΠ°Π΄Π°ΠΌ ΡΠ΅ Π΄Π° ΡΠ΅ Π²Π°ΠΌ ΠΎΠ²ΠΎ Π±ΠΈΡΠΈ ΠΎΠ΄ ΠΏΠΎΠΌΠΎΡΠΈ Π·Π° Π²Π°ΡΠ΅ ΡΡΠ΅Π½ΡΡΠ½Π΅ ΠΈ Π±ΡΠ΄ΡΡΠ΅ ΠΈΠ·Π°Π·ΠΎΠ²Π΅. Π£ΠΆΠΈΠ²Π°Ρ Ρ ΡΠΈΡΠ°ΡΡ!
ΠΠ°ΡΡΠΎ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ?
ΠΠΎΠΌΠΏΠ°Π½ΠΈΡΠ° ΠΈΠΌΠ° ΠΏΠΎΡΡΠΎΡΠ΅ΡΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ Π·Π° ΠΎΡΠΊΠ΅ΡΡΡΠ°ΡΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠ° Π₯Π°ΡΡ
ΠΈΡΠΎΡΠΏ ΠΠΎΠΌΠ°Π΄ ΠΈ ΠΏΠΎΠ²Π΅Π·Π°Π½Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ - Π¦ΠΎΠ½ΡΡΠ» ΠΈ ΠΠ°ΡΠ»Ρ. ΠΠ±ΠΎΠ³ ΡΠΎΠ³Π° ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈΠ·Π°ΡΠΈΡΠ° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ΅ ΠΈΠ·Π°Π±ΡΠ°Π½Π° ΠΊΠ°ΠΎ ΡΠ΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½ΠΈ ΠΌΠ΅ΡΠΎΠ΄ Π·Π° ΠΈΡΠΏΠΎΡΡΠΊΡ ΠΊΠΎΠΌΠΏΠ»Π΅ΡΠ½ΠΎΠ³ ΡΠ΅ΡΠ΅ΡΠ°. ΠΠΎΡΡΠΎ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° ΠΏΡΠΎΡΠ΅ΠΊΡΠ° ΡΠ°Π΄ΡΠΆΠΈ Π΄ΠΎΡΠΊΠ΅Ρ Ρ
ΠΎΡΡΠΎΠ²Π΅ ΡΠ° ΠΠΈΠ½Π΄ΠΎΠ²Ρ Π‘Π΅ΡΠ²Π΅Ρ Π¦ΠΎΡΠ΅ ΠΠ‘ Π²Π΅ΡΠ·ΠΈΡΠ°ΠΌΠ° 1803 ΠΈ 1809, ΠΏΠΎΡΡΠ΅Π±Π½ΠΎ ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈΡΠΈ ΠΎΠ΄Π²ΠΎΡΠ΅Π½Π΅ Π²Π΅ΡΠ·ΠΈΡΠ΅ Π΄ΠΎΡΠΊΠ΅Ρ ΡΠ»ΠΈΠΊΠ° Π·Π° 1803 ΠΈ 1809. Π£ Π²Π΅ΡΠ·ΠΈΡΠΈ 1803, Π²Π°ΠΆΠ½ΠΎ ΡΠ΅ Π·Π°ΠΏΠ°ΠΌΡΠΈΡΠΈ Π΄Π° ΡΠ΅ Π±ΡΠΎΡ ΡΠ΅Π²ΠΈΠ·ΠΈΡΠ΅ Ρ
ΠΎΡΡΠ° Π΄ΠΎΡΠΊΠ΅Ρ-Π° Π·Π° ΠΈΠ·Π³ΡΠ°Π΄ΡΡ ΠΌΠΎΡΠ° Π΄Π° ΡΠ΅ ΠΏΠΎΠ΄ΡΠ΄Π°ΡΠ° ΡΠ° Π±ΡΠΎΡΠ΅ΠΌ ΡΠ΅Π²ΠΈΠ·ΠΈΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½Π΅ Π΄ΠΎΡΠΊΠ΅Ρ ΡΠ»ΠΈΠΊΠ΅ ΠΈ Ρ
ΠΎΡΡΠΎΠΌ Π½Π° ΠΊΠΎΠΌΠ΅ ΡΠ΅ Π±ΠΈΡΠΈ ΠΏΠΎΠΊΡΠ΅Π½ΡΡ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ ΡΠ° ΠΎΠ²Π΅ ΡΠ»ΠΈΠΊΠ΅. ΠΠ΅ΡΠ·ΠΈΡΠ° 1809 Π½Π΅ΠΌΠ° ΡΠ°ΠΊΠ°Π² Π½Π΅Π΄ΠΎΡΡΠ°ΡΠ°ΠΊ. ΠΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΠΈΡΠ°ΡΠΈ Π²ΠΈΡΠ΅
ΠΠ°ΡΡΠΎ Π²ΠΈΡΠ΅ΡΡΠ΅ΠΏΠ΅Π½ΠΈ?
ΠΠ½ΠΆΠ΅ΡΠ΅ΡΠΈ ΡΠ°Π·Π²ΠΎΡΠ½ΠΎΠ³ ΡΠΈΠΌΠ° Π½Π΅ΠΌΠ°ΡΡ ΠΈΠ»ΠΈ ΠΈΠΌΠ°ΡΡ Π²Π΅ΠΎΠΌΠ° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ ΠΏΡΠΈΡΡΡΠΏ Ρ ΠΎΡΡΠΎΠ²ΠΈΠΌΠ° Π·Π° ΠΈΠ·Π³ΡΠ°Π΄ΡΡ; Π½Π΅ ΠΏΠΎΡΡΠΎΡΠΈ Π½Π°ΡΠΈΠ½ Π΄Π° ΡΠ΅ Π±ΡΠ·ΠΎ ΡΠΏΡΠ°Π²ΡΠ° ΡΠΊΡΠΏΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ Π·Π° ΠΏΡΠ°Π²ΡΠ΅ΡΠ΅ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ΅ Π½Π° ΠΎΠ²ΠΈΠΌ Ρ ΠΎΡΡΠΎΠ²ΠΈΠΌΠ°, Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅ Π΄ΠΎΠ΄Π°ΡΠ½ΠΎΠ³ ΡΠΊΡΠΏΠ° Π°Π»Π°ΡΠ° ΠΈΠ»ΠΈ ΡΠ°Π΄Π½ΠΎΠ³ ΠΎΠΏΡΠ΅ΡΠ΅ΡΠ΅ΡΠ° Π·Π° ΠΠΈΡΡΠ°Π» Π‘ΡΡΠ΄ΠΈΠΎ. ΠΠ±ΠΎΠ³ ΡΠΎΠ³Π° ΡΠΌΠΎ Π΄ΠΎΠ½Π΅Π»ΠΈ ΠΎΠ΄Π»ΡΠΊΡ Π΄Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΌΠΎ ΡΠ²Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ Π½Π΅ΠΎΠΏΡ ΠΎΠ΄Π½Π΅ Π·Π° ΡΠ³ΡΠ°Π΄ΡΡ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ΅ Ρ Π±ΡΠΈΠ»Π΄ ΠΠΎΡΠΊΠ΅Ρ ΠΈΠΌΠΈΡ. ΠΠΊΠΎ ΡΠ΅ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π±ΡΠ·ΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠΈ ΡΠ°ΠΌΠΎ Π΄ΠΎΡΠΊΠ΅ΡΡΠΈΠ»Π΅ ΠΈ ΠΏΠΎΠΊΡΠ΅Π½ΡΡΠΈ ΡΠ΅Π²ΠΎΠ²ΠΎΠ΄ Π·Π° ΠΊΡΠ΅ΠΈΡΠ°ΡΠ΅ ΠΎΠ²Π΅ ΡΠ»ΠΈΠΊΠ΅.
ΠΠ΄ ΡΠ΅ΠΎΡΠΈΡΠ΅ Π΄ΠΎ Π°ΠΊΡΠΈΡΠ΅
Π£ ΠΈΠ΄Π΅Π°Π»Π½ΠΎΡ Π²ΠΈΡΠ΅ΡΡΠ΅ΠΏΠ΅Π½ΠΎΡ ΠΈΠ·Π³ΡΠ°Π΄ΡΠΈ ΡΠ»ΠΈΠΊΠ΅ ΠΠΎΡΠΊΠ΅Ρ-Π°, ΠΎΠΊΡΡΠΆΠ΅ΡΠ΅ Π·Π° ΠΏΡΠ°Π²ΡΠ΅ΡΠ΅ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ΅ ΡΠ΅ ΠΏΡΠΈΠΏΡΠ΅ΠΌΡΠ΅Π½ΠΎ Ρ ΠΈΡΡΠΎΡ ΠΠΎΡΠΊΠ΅ΡΡΠΈΠ»Π΅ ΡΠΊΡΠΈΠΏΡΠΈ ΠΊΠ°ΠΎ ΠΈ ΡΠ°ΠΌΠ° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°. ΠΠ»ΠΈ Ρ Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°ΡΡ ΡΠ΅ Π΄ΠΎΠ΄Π°ΡΠ° ΠΏΠΎΡΡΠ΅Π΄Π½Π° Π²Π΅Π·Π°, ΠΎΠ΄Π½ΠΎΡΠ½ΠΎ ΠΊΠΎΡΠ°ΠΊ ΠΏΡΠ΅Π»ΠΈΠΌΠΈΠ½Π°ΡΠ½ΠΎΠ³ ΠΊΡΠ΅ΠΈΡΠ°ΡΠ° Π΄ΠΎΡΠΊΠ΅Ρ ΡΠ»ΠΈΠΊΠ΅ ΡΠ° ΡΠ²ΠΈΠΌΠ΅ ΡΡΠΎ ΡΠ΅ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎ Π·Π° ΠΏΡΠ°Π²ΡΠ΅ΡΠ΅ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ΅. ΠΠ²ΠΎ ΡΠ΅ ΡΡΠ°ΡΠ΅Π½ΠΎ Π·Π°ΡΠΎ ΡΡΠΎ ΡΠ°ΠΌ ΠΆΠ΅Π»Π΅ΠΎ Π΄Π° ΠΊΠΎΡΠΈΡΡΠΈΠΌ ΡΡΠ½ΠΊΡΠΈΡΡ Π΄ΠΎΡΠΊΠ΅Ρ ΠΊΠ΅ΡΠ° Π΄Π° ΡΠΌΠ°ΡΠΈΠΌ Π²ΡΠ΅ΠΌΠ΅ ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΡΠ΅ ΡΠ²ΠΈΡ Π·Π°Π²ΠΈΡΠ½ΠΎΡΡΠΈ.
Π₯Π°ΡΠ΄Π΅ Π΄Π° ΠΏΠΎΠ³Π»Π΅Π΄Π°ΠΌΠΎ Π³Π»Π°Π²Π½Π΅ ΡΠ°ΡΠΊΠ΅ ΡΠΊΡΠΈΠΏΡΠ΅ Π΄ΠΎΡΠΊΠ΅ΡΡΠΈΠ»Π΅ Π·Π° ΠΊΡΠ΅ΠΈΡΠ°ΡΠ΅ ΠΎΠ²Π΅ ΡΠ»ΠΈΠΊΠ΅.
ΠΠ° Π±ΠΈΡΡΠ΅ ΠΊΡΠ΅ΠΈΡΠ°Π»ΠΈ ΡΠ»ΠΈΠΊΠ΅ ΡΠ°Π·Π»ΠΈΡΠΈΡΠΈΡ Π²Π΅ΡΠ·ΠΈΡΠ° ΠΠ‘-Π°, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°ΡΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ Ρ Π΄ΠΎΡΠΊΠ΅ΡΡΠΈΠ»Π΅-Ρ ΠΊΡΠΎΠ· ΠΊΠΎΡΠΈ ΡΠ΅ ΠΏΡΠ΅Π½ΠΎΡΠΈ Π±ΡΠΎΡ Π²Π΅ΡΠ·ΠΈΡΠ΅ ΡΠΎΠΊΠΎΠΌ ΠΈΠ·Π³ΡΠ°Π΄ΡΠ΅, Π° ΡΠ°ΠΊΠΎΡΠ΅ ΡΠ΅ ΠΈ ΠΎΠ·Π½Π°ΠΊΠ° ΠΎΡΠ½ΠΎΠ²Π½Π΅ ΡΠ»ΠΈΠΊΠ΅.
ΠΠΎΠΆΠ΅ ΡΠ΅ ΠΏΡΠΎΠ½Π°ΡΠΈ ΠΊΠΎΠΌΠΏΠ»Π΅ΡΠ½Π° Π»ΠΈΡΡΠ° ΠΠΈΡΡΠΎΡΠΎΡΡ ΠΠΈΠ½Π΄ΠΎΠ²Ρ Π‘Π΅ΡΠ²Π΅Ρ ΠΎΠ·Π½Π°ΠΊΠ° ΡΠ»ΠΈΠΊΠ°
ΠΎΠ²Π΄Π΅ .
ARG WINDOWS_OS_VERSION=1809
FROM mcr.microsoft.com/windows/servercore:$WINDOWS_OS_VERSION
ΠΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Ρ ΡΠΏΡΡΡΡΠ²ΠΈΠΌΠ° RUN
ΡΠ½ΡΡΠ°Ρ Π΄ΠΎΡΠΊΠ΅Ρ ΡΠ°ΡΠ»Π° Π½Π° ΠΠΈΠ½Π΄ΠΎΠ²Ρ ΠΠ‘-Ρ ΡΠ΅ ΠΈΠ·Π²ΡΡΠ°Π²Π°ΡΡ Ρ ΠΊΠΎΠ½Π·ΠΎΠ»ΠΈ ΡΠΌΠ΄.Π΅ΠΊΠ΅. Π Π°Π΄ΠΈ ΠΏΠΎΠ³ΠΎΠ΄Π½ΠΎΡΡΠΈ ΠΏΠΈΡΠ°ΡΠ° ΡΠΊΡΠΈΠΏΡΠΈ ΠΈ ΠΏΡΠΎΡΠΈΡΠ΅ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΠΈ ΠΊΠΎΡΠΈΡΡΠ΅Π½ΠΈΡ
ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ, ΡΠ΅Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°ΡΠ΅ΠΌΠΎ ΠΊΠΎΠ½Π·ΠΎΠ»Ρ Π·Π° ΠΈΠ·Π²ΡΡΠ°Π²Π°ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Ρ ΠΠΎΠ²Π΅ΡΡΡ
Π΅Π»Π»-Ρ ΠΊΡΠΎΠ· ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΡ SHELL
.
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop';"]
Π‘Π»Π΅Π΄Π΅ΡΠΈ ΠΊΠΎΡΠ°ΠΊ ΡΠ΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅ ΠΌΠ΅Π½Π°ΡΠ΅ΡΠ° ΡΠΎΠΊΠΎΠ»Π°Π΄Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΈ ΠΏΠΎΡΡΠ΅Π±Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠ°:
COPY chocolatey.pkg.config .
RUN Set-ExecutionPolicy Bypass -Scope Process -Force ;
[System.Net.ServicePointManager]::SecurityProtocol =
[System.Net.ServicePointManager]::SecurityProtocol -bor 3072 ;
$env:chocolateyUseWindowsCompression = 'true' ;
iex ((New-Object System.Net.WebClient).DownloadString(
'https://chocolatey.org/install.ps1')) ;
choco install chocolatey.pkg.config -y --ignore-detected-reboot ;
if ( @(0, 1605, 1614, 1641, 3010) -contains $LASTEXITCODE ) {
refreshenv; } else { exit $LASTEXITCODE; } ;
Remove-Item 'chocolatey.pkg.config'
ΠΠ° Π±ΠΈΡΡΠ΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π»ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠΈ ΡΠΎΠΊΠΎΠ»Π°Π΄Ρ, ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡ ΡΠ΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΎ ΠΏΡΠΎΡΠ»Π΅Π΄ΠΈΡΠΈ ΠΊΠ°ΠΎ Π»ΠΈΡΡΡ ΠΈΠ»ΠΈ ΠΈΡ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠΈ ΡΠ΅Π΄Π°Π½ ΠΏΠΎ ΡΠ΅Π΄Π°Π½ Π°ΠΊΠΎ ΡΡΠ΅Π±Π° Π΄Π° ΠΏΡΠΎΡΠ»Π΅Π΄ΠΈΡΠ΅ ΡΠ΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅ Π·Π° ΡΠ²Π°ΠΊΠΈ ΠΏΠ°ΠΊΠ΅Ρ. Π£ Π½Π°ΡΠΎΡ ΡΠΈΡΡΠ°ΡΠΈΡΠΈ ΠΊΠΎΡΠΈΡΡΠΈΠ»ΠΈ ΡΠΌΠΎ Π΄Π°ΡΠΎΡΠ΅ΠΊΡ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ° Ρ ΠΠ‘ΠΠ ΡΠΎΡΠΌΠ°ΡΡ, ΠΊΠΎΡΠ° ΡΠ°Π΄ΡΠΆΠΈ Π»ΠΈΡΡΡ ΠΏΠΎΡΡΠ΅Π±Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΈ ΡΠΈΡ ΠΎΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅. ΠΠ΅Π³ΠΎΠ² ΡΠ°Π΄ΡΠΆΠ°Ρ ΠΈΠ·Π³Π»Π΅Π΄Π° ΠΎΠ²Π°ΠΊΠΎ:
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="python" version="3.8.2"/>
<package id="nuget.commandline" version="5.5.1"/>
<package id="git" version="2.26.2"/>
</packages>
ΠΠ°ΡΠΈΠΌ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΌΠΎ ΠΎΠΊΡΡΠΆΠ΅ΡΠ΅ Π·Π° ΠΏΡΠ°Π²ΡΠ΅ΡΠ΅ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ΅, ΠΎΠ΄Π½ΠΎΡΠ½ΠΎ ΠΠ‘ ΠΡΠΈΠ»Π΄ Π’ΠΎΠΎΠ»Ρ 2019 - ΠΎΠ²ΠΎ ΡΠ΅ Π»Π°Π³Π°Π½Π° Π²Π΅ΡΠ·ΠΈΡΠ° ΠΠΈΡΡΠ°Π» Π‘ΡΡΠ΄ΠΈΠΎ 2019, ΠΊΠΎΡΠ° ΡΠ°Π΄ΡΠΆΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΈ ΠΏΠΎΡΡΠ΅Π±Π°Π½ ΡΠΊΡΠΏ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ Π·Π° ΠΊΠΎΠΌΠΏΠ°ΡΠ»ΠΈΡΠ°ΡΠ΅ ΠΊΠΎΠ΄Π°.
ΠΠ° Π±ΠΈΡΠΌΠΎ Ρ ΠΏΠΎΡΠΏΡΠ½ΠΎΡΡΠΈ ΡΠ°Π΄ΠΈΠ»ΠΈ ΡΠ° Π½Π°ΡΠΈΠΌ Π¦++ ΠΏΡΠΎΡΠ΅ΠΊΡΠΎΠΌ, Π±ΠΈΡΠ΅ Π½Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±Π½Π΅ Π΄ΠΎΠ΄Π°ΡΠ½Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅, ΠΈ ΡΠΎ:
- ΠΠΏΡΠ΅ΡΠ΅ΡΠ΅ΡΠ΅ Π¦++ Π°Π»Π°ΡΠ°
- Π’ΠΎΠΎΠ»ΡΠ΅Ρ Π²141
- ΠΠΈΠ½Π΄ΠΎΠ²Ρ 10 Π‘ΠΠ (10.0.17134.0)
ΠΠΎΠΆΠ΅ΡΠ΅ Π°ΡΡΠΎΠΌΠ°ΡΡΠΊΠΈ Π΄Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅ ΠΏΡΠΎΡΠΈΡΠ΅Π½ΠΈ ΡΠΊΡΠΏ Π°Π»Π°ΡΠ° ΠΊΠΎΡΠΈΡΡΠ΅ΡΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Ρ Π΄Π°ΡΠΎΡΠ΅ΠΊΡ Ρ ΠΠ‘ΠΠ ΡΠΎΡΠΌΠ°ΡΡ. Π‘Π°Π΄ΡΠΆΠ°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π΅ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ΅:
ΠΠΎΠΌΠΏΠ»Π΅ΡΠ½Π° Π»ΠΈΡΡΠ° Π΄ΠΎΡΡΡΠΏΠ½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ ΠΌΠΎΠΆΠ΅ ΡΠ΅ Π½Π°ΡΠΈ Π½Π° ΡΠ°ΡΡΡ Π·Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ
ΠΠΈΡΡΠΎΡΠΎΡΡ ΠΠΈΡΡΠ°Π» Π‘ΡΡΠ΄ΠΈΠΎ .
{
"version": "1.0",
"components": [
"Microsoft.Component.MSBuild",
"Microsoft.VisualStudio.Workload.VCTools;includeRecommended",
"Microsoft.VisualStudio.Component.VC.v141.x86.x64",
"Microsoft.VisualStudio.Component.Windows10SDK.17134"
]
}
ΠΠΎΡΠΊΠ΅ΡΡΠΈΠ»Π΅ ΠΏΠΎΠΊΡΠ΅ΡΠ΅ ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΠΎΠ½Ρ ΡΠΊΡΠΈΠΏΡΡ ΠΈ ΡΠ°Π΄ΠΈ ΠΏΠΎΠ³ΠΎΠ΄Π½ΠΎΡΡΠΈ Π΄ΠΎΠ΄Π°ΡΠ΅ ΠΏΡΡΠ°ΡΡ Π΄ΠΎ ΠΈΠ·Π²ΡΡΠ½ΠΈΡ
Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° Π°Π»Π°ΡΠ° Π·Π° ΠΏΡΠ°Π²ΡΠ΅ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΡΠΈΠ²ΠΎΡ ΠΎΠΊΡΡΠΆΠ΅ΡΠ° PATH
. Π’Π°ΠΊΠΎΡΠ΅ ΡΠ΅ ΠΏΡΠ΅ΠΏΠΎΡΡΡΡΠΈΠ²ΠΎ ΡΠΊΠ»ΠΎΠ½ΠΈΡΠΈ Π½Π΅ΠΏΠΎΡΡΠ΅Π±Π½Π΅ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ΅ ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡΠΌΠ΅ Π΄Π° Π±ΠΈΡΡΠ΅ ΡΠΌΠ°ΡΠΈΠ»ΠΈ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ ΡΠ»ΠΈΠΊΠ΅.
COPY buildtools.config.json .
RUN Invoke-WebRequest 'https://aka.ms/vs/16/release/vs_BuildTools.exe'
-OutFile '.vs_buildtools.exe' -UseBasicParsing ;
Start-Process -FilePath '.vs_buildtools.exe' -Wait -ArgumentList
'--quiet --norestart --nocache --config C:buildtools.config.json' ;
Remove-Item '.vs_buildtools.exe' ;
Remove-Item '.buildtools.config.json' ;
Remove-Item -Force -Recurse
'C:Program Files (x86)Microsoft Visual StudioInstaller' ;
$env:PATH = 'C:Program Files (x86)Microsoft Visual Studio2019BuildToolsMSBuildCurrentBin;' + $env:PATH;
[Environment]::SetEnvironmentVariable('PATH', $env:PATH,
[EnvironmentVariableTarget]::Machine)
Π£ ΠΎΠ²ΠΎΡ ΡΠ°Π·ΠΈ, Π½Π°ΡΠ° ΡΠ»ΠΈΠΊΠ° Π·Π° ΠΊΠΎΠΌΠΏΠ°ΡΠ»ΠΈΡΠ°ΡΠ΅ Π¦++ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ΅ ΡΠ΅ ΡΠΏΡΠ΅ΠΌΠ½Π° ΠΈ ΠΌΠΎΠΆΠ΅ΠΌΠΎ Π΄Π° ΠΏΡΠ΅ΡΠ΅ΠΌΠΎ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π½Π° ΠΊΡΠ΅ΠΈΡΠ°ΡΠ΅ Π΄ΠΎΡΠΊΠ΅Ρ Π²ΠΈΡΠ΅ΡΡΠ΅ΠΏΠ΅Π½Π΅ Π²Π΅ΡΠ·ΠΈΡΠ΅ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ΅.
ΠΠΈΡΠ΅ΡΡΠ΅ΠΏΠ΅Π½ΠΈ Ρ Π°ΠΊΡΠΈΡΠΈ
ΠΠΎΡΠΈΡΡΠΈΡΠ΅ΠΌΠΎ ΠΊΡΠ΅ΠΈΡΠ°Π½Ρ ΡΠ»ΠΈΠΊΡ ΡΠ° ΡΠ²ΠΈΠΌ Π°Π»Π°ΡΠΈΠΌΠ° Π½Π° ΠΏΠ»ΠΎΡΠΈ ΠΊΠ°ΠΎ ΡΠ»ΠΈΠΊΡ Π·Π° ΠΈΠ·Π³ΡΠ°Π΄ΡΡ. ΠΠ°ΠΎ ΠΈΡ ΠΏΡΠ΅ΡΡ
ΠΎΠ΄Π½ΠΎΡ ΡΠΊΡΠΈΠΏΡΠΈ Π΄ΠΎΡΠΊΠ΅ΡΡΠΈΠ»Π΅, Π΄ΠΎΠ΄Π°ΡΠ΅ΠΌΠΎ ΠΌΠΎΠ³ΡΡΠ½ΠΎΡΡ Π΄Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠΊΠΈ ΠΎΠ΄ΡΠ΅Π΄ΠΈΠΌΠΎ Π±ΡΠΎΡ Π²Π΅ΡΠ·ΠΈΡΠ΅/ΠΎΠ·Π½Π°ΠΊΡ ΡΠ»ΠΈΠΊΠ΅ ΡΠ°Π΄ΠΈ Π»Π°ΠΊΡΠ΅Π³ ΠΏΠΎΠ½ΠΎΠ²Π½ΠΎΠ³ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ° ΠΊΠΎΠ΄Π°. ΠΠ°ΠΆΠ½ΠΎ ΡΠ΅ Π΄ΠΎΠ΄Π°ΡΠΈ ΠΎΠ·Π½Π°ΠΊΡ as builder
Π½Π° ΡΠ»ΠΈΠΊΡ ΡΠΊΠ»ΠΎΠΏΠ° Ρ ΡΠΏΡΡΡΡΠ²ΠΈΠΌΠ° FROM
.
ARG WINDOWS_OS_VERSION=1809
FROM buildtools:$WINDOWS_OS_VERSION as builder
Π‘Π°Π΄Π° ΡΠ΅ Π²ΡΠ΅ΠΌΠ΅ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΡ. ΠΠ²Π΄Π΅ ΡΠ΅ ΡΠ²Π΅ ΠΏΡΠΈΠ»ΠΈΡΠ½ΠΎ ΡΠ΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΎ: ΠΊΠΎΠΏΠΈΡΠ°ΡΡΠ΅ ΠΈΠ·Π²ΠΎΡΠ½ΠΈ ΠΊΠΎΠ΄ ΠΈ ΡΠ²Π΅ ΡΡΠΎ ΡΠ΅ ΠΏΠΎΠ²Π΅Π·Π°Π½ΠΎ ΡΠ° ΡΠΈΠΌ ΠΈ Π·Π°ΠΏΠΎΡΠ½ΠΈΡΠ΅ ΠΏΡΠΎΡΠ΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡΠ΅.
COPY myapp .
RUN nuget restore myapp.sln ;
msbuild myapp.sln /t:myapp /p:Configuration=Release
ΠΠ°Π²ΡΡΠ½Π° ΡΠ°Π·Π° ΠΊΡΠ΅ΠΈΡΠ°ΡΠ° ΠΊΠΎΠ½Π°ΡΠ½Π΅ ΡΠ»ΠΈΠΊΠ΅ ΡΠ΅ ΠΎΠ΄ΡΠ΅ΡΠΈΠ²Π°ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½Π΅ ΡΠ»ΠΈΠΊΠ΅ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ΅, Π³Π΄Π΅ ΡΠ΅ ΡΠ΅ Π½Π°Π»Π°Π·ΠΈΡΠΈ ΡΠ²ΠΈ Π°ΡΡΠ΅ΡΠ°ΠΊΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡΠ΅ ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½ΠΈ ΡΠ°ΡΠ»ΠΎΠ²ΠΈ. ΠΠ° Π±ΠΈΡΡΠ΅ ΠΊΠΎΠΏΠΈΡΠ°Π»ΠΈ ΠΊΠΎΠΌΠΏΠ°ΡΠ»ΠΈΡΠ°Π½Π΅ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ΅ ΡΠ° ΡΠ»ΠΈΠΊΠ΅ ΡΡΠ΅Π΄ΡΠ΅Π³ ΡΠΊΠ»ΠΎΠΏΠ°, ΠΌΠΎΡΠ°ΡΠ΅ Π½Π°Π²Π΅ΡΡΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΠ°Ρ --from=builder
Ρ ΡΠΏΡΡΡΡΠ²ΠΈΠΌΠ° COPY
.
FROM mcr.microsoft.com/windows/servercore:$WINDOWS_OS_VERSION
COPY --from=builder C:/x64/Release/myapp/ ./
COPY ./configs ./
Π‘Π°Π΄Π° ΠΎΡΡΠ°ΡΠ΅ ΡΠ°ΠΌΠΎ Π΄Π° Π΄ΠΎΠ΄Π°ΠΌΠΎ Π½Π΅ΠΎΠΏΡ
ΠΎΠ΄Π½Π΅ Π·Π°Π²ΠΈΡΠ½ΠΎΡΡΠΈ Π΄Π° Π±ΠΈ Π½Π°ΡΠ° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ° ΡΠ°Π΄ΠΈΠ»Π° ΠΈ Π½Π°Π²Π΅Π΄Π΅ΠΌΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π·Π° ΠΏΠΎΠΊΡΠ΅ΡΠ°ΡΠ΅ ΠΊΡΠΎΠ· ΡΠΏΡΡΡΡΠ²Π° ENTRYPOINT
ΠΈΠ»ΠΈ CMD
.
ΠΠ°ΠΊΡΡΡΠ°ΠΊ
Π£ ΠΎΠ²ΠΎΠΌ ΡΠ»Π°Π½ΠΊΡ ΡΠ°ΠΌ Π³ΠΎΠ²ΠΎΡΠΈΠΎ ΠΎ ΡΠΎΠΌΠ΅ ΠΊΠ°ΠΊΠΎ Π΄Π° ΠΊΡΠ΅ΠΈΡΠ°ΠΌ ΠΏΡΠ½ΠΎΠΏΡΠ°Π²Π½ΠΎ ΠΎΠΊΡΡΠΆΠ΅ΡΠ΅ Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡΡ Π·Π° Π¦++ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ΅ ΡΠ½ΡΡΠ°Ρ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠ° ΠΏΠΎΠ΄ ΠΠΈΠ½Π΄ΠΎΠ²Ρ-ΠΎΠΌ ΠΈ ΠΊΠ°ΠΊΠΎ Π΄Π° ΠΊΠΎΡΠΈΡΡΠΈΠΌ ΠΌΠΎΠ³ΡΡΠ½ΠΎΡΡΠΈ Π²ΠΈΡΠ΅ΡΡΠ΅ΠΏΠ΅Π½ΠΈΡ Π΄ΠΎΡΠΊΠ΅Ρ-Π° Π·Π° ΠΊΡΠ΅ΠΈΡΠ°ΡΠ΅ ΠΏΡΠ½ΠΎΠΏΡΠ°Π²Π½ΠΈΡ ΡΠ»ΠΈΠΊΠ° Π½Π°ΡΠ΅ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ΅.
ΠΠ·Π²ΠΎΡ: Π²Π²Π².Ρ Π°Π±Ρ.ΡΠΎΠΌ