在Windows容器中运行erlang时出错

我试图让RabbitMQ在Windows容器中运行,但是没有太多的运气。 我已经复制到容器RabbitMQ和Erlang的安装目录,但是当我尝试运行erl.exe我被告知beam.smp.dll无法加载。

 PS C:\Program Files\erl8.2\bin> .\erl.exe Unable to load emulator DLL (C:\Program Files\erl8.2\erts-8.2\bin\beam.smp.dll) 

在主机上的相同安装目录上运行相同的命令就可以。 我已经检查过该文件是否存在,以及校验和是否匹配。 我敢打赌,在容器如何加载文件以及主机如何加载文件方面存在某些不同的差异。 我只是不知道在哪里开始寻找。

这是我的Dockerfile工作。 我可以连接到RabbitMQ并且日志显示它正在正确运行,并且我可以使用来自我的主机的访客/访客login使用容器的IP /主机名login到pipe理UI。

 # start with this container as the base FROM microsoft/windowsservercore # erlang installer download url ENV erlang_download_url "http://erlang.org/download/otp_win64_19.3.exe" # erlang will install to this location and rabbitmq will use this environment variable to locate it ENV ERLANG_HOME c:\\erlang # rabbitmq version used in download url and to rename folder extracted from zip file ENV rabbitmq_version "3.6.9" # rabbitmq zip package download url ENV rabbit_download_url "https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.9/rabbitmq-server-windows-$rabbitmq_version.zip" # setup powershell options for RUN commands SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"] # download and install erlang using silent install option, and remove installer when done RUN Invoke-WebRequest -Uri $env:erlang_download_url -OutFile erlang_install.exe ; \ Start-Process -Wait -FilePath .\erlang_install.exe -ArgumentList /S, /D=$env:ERLANG_HOME ; \ Remove-Item -Force erlang_install.exe # download and extract rabbitmq, and remove zip file when done RUN Invoke-WebRequest -Uri $env:rabbit_download_url -OutFile rabbitmq.zip ; \ Expand-Archive -Path .\rabbitmq.zip -DestinationPath "c:\\" ; \ Remove-Item -Force rabbitmq.zip # remove version from rabbitmq folder name RUN Rename-Item c:\rabbitmq_server-$env:rabbitmq_version c:\rabbitmq # enable managment plugin RUN c:\rabbitmq\sbin\rabbitmq-plugins.bat enable rabbitmq_management --offline # tell rabbitmq where to find our custom config file ENV RABBITMQ_CONFIG_FILE "c:\rabbitmq" RUN ["cmd", "/c", "echo [{rabbit, [{loopback_users, []}]}].> c:\\rabbitmq.config"] # run server when container starts - container will shutdown when this process ends CMD "c:\rabbitmq\sbin\rabbitmq-server.bat"