在Windows Server 2019上插入Docker Image中的Erlang构建机器

问题描述 投票:0回答:1
RUN powershell -Command Start-Process -Wait -FilePath C:\otp_win64_23.3.exe -ArgumentList /S;

构建Docker映像有效,当我以容器作为容器运行时,我会收到以下主要错误:


erlang_home无法正确设置。

请设置erlang_home以指向您的Erlang安装或 将RabbitMQ服务器分布放在Erlang Lib文件夹中。

因此,环境变量未正确设置,也缺少bin文件夹。某些安装工件可以在C:\ Program Files RL-23.2中找到...这种方法在三个月前起作用,现在不再起作用,我不知道发生了什么变化。

该图像建立在Windows Server 2019上,并具有Windows Server 2019作为基本图像。当我使用Docker台式机上构建本地开发人员(Windows 11)时,它可以正常工作,但在Build Server(Mirantis Container Runtime)上不行。那么什么是不同的呢?

这个是我的Dockerfile的最小例子:

FROM mcr.microsoft.com/windows/servercore:ltsc2019 HEALTHCHECK --interval=10s \ CMD powershell -command \ try { \ $response = iwr http://localhost:8080/base/version -UseBasicParsing; \ if ($response.StatusCode -eq 200) { return 0} \ else {return 1}; \ } catch { return 1 } ADD binaries/jdk-11.0.2-win jdk-11.0.2 ADD binaries/rabbitmq_server-3.8.14 rabbitmq_server-3.8.14 ADD binaries/otp_win64_23.3.exe otp_win64_23.3.exe ADD binaries/python-2.7.11.amd64.msi python-2.7.11.amd64.msi RUN powershell -Command Start-Process -Wait -FilePath C:\\otp_win64_23.3.exe -ArgumentList /S; RUN powershell -Command Start-Process msiexec.exe -Wait -ArgumentList '/I C:\python-2.7.11.amd64.msi /quiet ALLUSERS=1 TARGETDIR=C:\python27 ADDLOCAL=ALL' RUN for /d %f in ("C:\rabbitmq_server-*") do @mklink /D C:\rabbitmq_server "%f" && exit ADD config/rabbitmq/init-rabbitmq.ps1 /mydir/init-rabbitmq.ps1 ADD /testerlang.ps1 /mydir/testerlang.ps1 ARG JAVA_HOME="C:\jdk-11.0.2" ENV JAVA_HOME="C:\jdk-11.0.2" ARG ERLANG_HOME="C:\Program Files\erl-23.3" ENV ERLANG_HOME="C:\Program Files\erl-23.3" RUN setx path "%path%;C:\rabbitmq_server\sbin;C:\python27" WORKDIR C:\\mydir CMD ["powershell.exe", "./testerlang.ps1"]

Testerlang.ps1

C:\rabbitmq_server\sbin\rabbitmq-service.bat install C:\rabbitmq_server\sbin\rabbitmq-service.bat start Copy-Item "C:\Windows\system32\config\systemprofile\.erlang.cookie" -Destination "C:\Users\ContainerAdministrator\.erlang.cookie" -Force C:\mydir\init-rabbitmq.ps1 C:\rabbitmq_server\sbin\rabbitmq-service.bat stop C:\rabbitmq_server\sbin\rabbitmq-service.bat start ping -t localhost > $null
我尝试了多种事情(不同的机器,不同的命令,使用巧克力...),但是我从未发现过不同行为的原因。对我来说,这看起来像是一件许可,但我真的不知道。
    

没有真正的解决方案,而是解决方法: Windows Server 2019图像的tour kb5044277 totrife hiveresty一切正常。由于KB5046615 Microsoft更改了某些东西,因此破坏了Erlang的安装。一个假设是安装程序随附的Visual C ++重新分布可引起问题。

将Docker文件更改为现在解决此问题:
FROM mcr.microsoft.com/windows/servercore:1809-KB5044277-amd64

docker dockerfile rabbitmq erlang-otp windows-server-2019
1个回答
0
投票
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.