Windows сервер docker контейнер на Azure, похоже, не хочет запускать 32-разрядные приложения - PullRequest
0 голосов
/ 04 августа 2020

Я думаю, раньше это работало в месяц go, а с последним раундом Windows обновлений это не так.

Установить docker на Windows 2016 ВМ в Azure.

Dockerfile

FROM mcr.microsoft.com/dotnet/framework/sdk:3.5

SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]

ENV attach_dbs="[]" \
    ACCEPT_EULA="_" \
    sqlUsername="***" \
    sqlPassword="***" \
    sqlServer=".\sqlexpress" 


RUN [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
    Invoke-WebRequest -Uri "https://go.microsoft.com/fwlink/?linkid=829176" -OutFile sqlexpress.exe; \
    Start-Process -Wait -FilePath .\sqlexpress.exe -ArgumentList /qs, /x:setup; \
    .\setup\sqlexpress.exe /q /ACTION=Install /INSTANCENAME=SQLEXPRESS /FEATURES=SQLEngine /UPDATEENABLED=0 /SQLSVCACCOUNT='NT AUTHORITY\System' /SQLSYSADMINACCOUNTS='BUILTIN\ADMINISTRATORS' /TCPENABLED=1 /NPENABLED=0 /IACCEPTSQLSERVERLICENSETERMS; \
    Remove-Item -Recurse -Force sqlexpress.exe, setup

Это не работает. Я получаю

.\setup\sqlexpress.exe : The term '.\setup\sqlexpress.exe' is not recognized
as the name of a cmdlet, function, script file, or operable program. Check the
spelling of the name, or if a path was included, verify that the path is
correct and try again.
At line:1 char:328
+ ... press.exe -ArgumentList /qs, /x:setup; .\setup\sqlexpress.exe /q /ACT ...
+                                            ~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (.\setup\sqlexpress.exe:String)
   [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : CommandNotFoundException

Если я запускаю контейнер и каждую команду вручную, когда я запускаю sqlexpress, я не получаю установочный каталог. EXE не извлекает. Я получаю следующее событие в системном журнале.

EventID            : 26
MachineName        : 9a09e0a0ac1f
Index              : 1173
Category           : (0)
CategoryNumber     : 0
EntryType          : Information
Message            : CriticalAppShutdownCleanupTimeout
Source             : Application Popup
ReplacementStrings : {sqlexpress.exe - Entry Point Not Found, The procedure entry point NtLoadKey3 could not be
                     located in the dynamic link library C:\Windows\System32\wow64.dll. }
InstanceId         : 26
TimeGenerated      : 8/4/2020 3:58:34 PM
TimeWritten        : 8/4/2020 3:58:34 PM
UserName           : NT AUTHORITY\SYSTEM
Site               :
Container          :

Google sez, это новая точка входа в недавнем обновлении Windows. Кто-нибудь видел это? Знаете, где с этим go? Спасибо.

PS C:\temp\docker2> docker version
Client: Docker Engine - Enterprise
 Version:           19.03.11
 API version:       1.40
 Go version:        go1.13.11
 Git commit:        0da829ac52
 Built:             06/26/2020 17:20:46
 OS/Arch:           windows/amd64
 Experimental:      false

Server: Docker Engine - Enterprise (Unlicensed - not for production workloads)
 Engine:
  Version:          19.03.11
  API version:      1.40 (minimum version 1.24)
  Go version:       go1.13.11
  Git commit:       0da829ac52
  Built:            06/26/2020 17:19:32
  OS/Arch:          windows/amd64
  Experimental:     false
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...