问题标签 [nano-server]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 运行 Windows Nanoserver 的 Docker 容器中的 Spring Boot InetAddress 问题
我有一个 Spring Boot 应用程序,它在 NetBeans 中本地运行并作为独立 jar (Win 10 Pro 1903 - 10.0.18362.239)。但是,当我尝试在基于 Windows nanoserver(相同 Windows 版本)的 docker 容器中运行它时,应用程序在 CommandLineRunner 中崩溃并出现 NoClassDefFoundError:
我已经使用 -verbose 选项运行了这两个(独立和容器),并且似乎在独立版本中发生了一些在容器中没有发生的缓存。
独立日志 - 日志中的所有 InetAddress 实例(行尾的整数是日志文件中的行号):
在容器日志中,InetAddress 的所有实例:
关于如何强制缓存 InetAddress 的任何建议(如果这是问题) - 或任何其他修复它的建议?OpenJDK 的人们没有提供什么帮助(一周内没有回复),Spring Boot 将其视为“我们不处理运行时问题”。
更新 2019-09-02 Zulu(和其他人)的人们已经确定,在 1.8.0_181 或 192 之后显然所有 JDK 都存在根本问题。这里有更详细的信息: https ://bugs.openjdk.java.net /浏览/JDK-8225425
我自己的解决方法是恢复使用 Zulu 192 JDK。我还没有尝试过任何以后的版本。
谢谢。
docker - docker --add-hostname 不适用于 Windows 容器
我正在尝试将主机名添加到 Windows 容器中的主机文件,但没有成功。
根据文档,这应该在主机文件上添加一个条目
但我无法从容器中 ping “我”。
查看主机文件,我找不到适合我的条目。
仅返回条目:
我也尝试通过 docker-compose 文件添加,但我不熟悉 sintax:
这是我的 docker-compose.override.yml
版本:“3.4”服务:trfout_wsrv:extra_hosts:-“我:127.0.1.1”
docker - 我可以从 Windows 2016 上托管的 docker 在 dotnet core 3.0 应用程序上运行 dotnetcore 吗?
我正在尝试在运行 OS w2016 的生产服务器上运行基于 dotnet Core 3.0 构建的应用程序,打包在 docker 映像中。
当我在服务器上运行 docker 映像时,我收到了这个不兼容的映像错误:
据我了解,我需要使用与目标主机兼容的基本映像来构建映像。所以,我需要寻找 1607 base images 。问题是,我找不到针对该服务器版本的 dotnet Core 3.0 的图像。
W2016 是最近的,docker 应该允许在每台服务器上运行,所以我在这里缺少什么?
为清楚起见,这里是我要编写的 dockerfile:
更新:
这是我的第一个 docker 项目,所以我可能缺乏一些知识。根据this post dotnet core image is not supported on w2016。
但是我应该能够使用 hiper-v 隔离运行吗? 在this official post之后,我尝试运行
我试试这个命令:
但它失败并出现以下错误,因为仍然需要兼容的图像:
更新2:
为清楚起见,错误:
为我的探路者应用程序运行基于 mcr.microsoft.com/dotnet/core/runtime:3.0-nanoserver-1903 的图像时抛出。
问题是如何打包应用程序并在 Windows 2016 服务器上运行
git - Git 在 NanoServer 中不起作用(在 Docker 中)
我需要在 Nano Server 中安装 Git。在我的研究中,我发现 Nano Server 无法处理 MSI 文件,这就是为什么我认为我可以轻松地将它下载到另一个容器(在我的情况下为 Windows Server Core)并将 Git 的内容移动到另一个容器(Nano服务器容器)(想法来自这里:https ://stefanscherer.github.io/how-to-build-nodejs-nanoserver-image/ )。我尝试使用以下 dockerfile:
但是当我尝试构建映像时,在Step 12/14 : RUN git version
挂起一段时间后出现以下错误:
命令“cmd /S /C git version”返回非零代码:3221225495 总线错误
我想好吧,这很简单,我只需RUN git version
从 dockerfile 中删除 并在成功构建映像后直接在容器中运行命令,这样我就可以检查实际错误是什么。但是当我在附加的容器中调用 git 时,它只会挂起几秒钟并且什么都不做(就像我没有输入任何命令一样)。有任何想法吗?
PS:我不想要 MinGit(即使 MinGit 出于某种原因在 Nano Server 中工作),因为我使用 NPM,它会生成 MinGit 中不存在的 git 命令(从 GitHub 下载特定提交)。
PS2:我无法将我的主容器更改为 Windows Server Core,因为我将它与 .NET Core 和 Windows 容器一起使用。SDK 仅适用于 Nano Server 版本。
编辑:我尝试了@Voc 的答案,它有效。对于任何想要确切代码 dockerfile 的人:
docker - Windows 容器蓝屏它的主机
一段时间以来,我们一直在使用 Windows 容器作为测试平台,并取得了巨大的成功。但是,自上次 Windows 更新以来,该容器似乎使主机系统(Windows Server 2019 std)崩溃。
服务器将在几个小时内正常运行,然后在执行这些命令之一后几分钟就会崩溃。
- docker run -it --rm -p 8000:80 --name core_sample mcr.microsoft.com/dotnet/core/samples:aspnetapp
- docker run --name test mcr.microsoft.com/windows/nanoserver:1809
只是想知道是否其他人也有同样的经历?我们已经尝试重新安装主机,但没有任何乐趣。
.net-core - 在 .NET Core 3.1 Nano Server Docker 映像上安装 .NET 运行时
我有一个使用Microsoft.NET.Sdk.WindowsDesktop
项目 SDK 的 .NET Core 3.1 控制台应用程序,因为它Geometry3D
在System.Windows.Media.Media3D
.
我想在 Windows Nano Server 上的 Docker 容器中运行它,但在执行时收到以下错误docker run
:
如何安装所需的 sdk 和运行时?
这是我现有的 Dockerfile:
GitHub 仓库在这里:https ://github.com/tonysneed/hello-netcore-wpf-nano
docker - 尝试将应用程序移植到 docker nanoserver 容器。运行 exe 失败,退出代码为 -1073741515(缺少依赖项)
我目前正在尝试将我的图像优化器应用程序移植到 NanoServer docker 图像。我的图像优化器使用的工具之一是 truepng.exe。(可以在这里下载:http: //x128.ho.ua/clicks/clicks.php?uri= TruePNG_0625.zip)
我只是创建了一个 nanoserver 容器并安装了一个包含 truepng.exe 的文件夹:
当我现在运行 truepng.exe 时,我期望一些关于缺少命令行参数的输出:
但是,当我从 nanoserver docker 容器内部调用它时,我基本上看不到任何输出:
如上所示,退出代码设置为 -1073741515。据此,它通常意味着缺少依赖项。
然后我下载了https://github.com/lucasg/Dependencies来查看 truepng 的依赖关系:
似乎它对 5 个 DLL 有一些依赖关系。查找这些我发现显然有一个叫做“反向转发器”的东西:https ://cloudblogs.microsoft.com/windowsserver/2015/11/16/moving-to-nano-server-the-new-deployment-option-in -windows-server-2016/
根据以下帖子,尽管它们应该已经包含在 nanoserver 中:https ://social.technet.microsoft.com/Forums/en-US/5b36a6d3-84c9-4940-8b7a-9e2a38468291/reverse-forwarders-package-in- tp5?forum=NanoServer
在所有这些调查之后,我也一直在尝试手动将 DLL 从我的本地机器(system32)复制到 docker 机器,但没有任何成功(它只是不断破坏其他东西,比如需要我重新创建容器的复制命令) . 除此之外,我还从 SysWOW64 复制了文件,但这也无济于事。
我目前对如何继续进行非常困惑,因为我什至不确定该工具是否缺少依赖项或者是否发生了其他事情。有没有办法在工具启动后调查缺少哪些 DLL?
亲切的问候,
德韦斯
编辑 1:来自@CherryDT 的想法 我尝试运行 gflags ( https://social.msdn.microsoft.com/Forums/en-US/f004a7e5-9024-4555-9ada-e692fbc3160d/how-to-start-quotloader-snapsquot? forum=vcgeneral),它给出了以下输出:
在此之后,我尝试运行 Dbgview.exe,但这从未导致写入日志文件:
我也再次启动了 TruePNG.exe,但同样没有写入日志文件。
我尝试使用 dotnet 核心应用程序查询事件日志,但这导致了以下异常:
docker - 使用 docker Windows Nanoserver 删除文件时访问被拒绝
命令在 Docker 图像上rmdir /S /Q
给出Access Denied
我(应该是)同一个用户......为什么?
Dockerfile:
输出:
docker - 如何在 aspnet Nanoserver docker 容器中安装 Powershell Core?
是否有可能以某种方式将 Powershell Core 添加到 AspNet Nano Server 基础映像中?
我们使用多阶段 dockerfile 来生成包含我们的 .net 核心 Web 应用程序的图像。最终图像基于 mcr.microsoft.com/dotnet/core/aspnet:3.1-nanoserver-1809 并添加了我们的 .net 核心二进制文件(以将图像大小保持在最小)。
我们希望将 Powershell Core 包含在最终映像中,用于初始化和调试目的,但到目前为止还没有找到方法。我们已经考虑了各种命令行安装选项(msiexec、choco 和 google 了很多),但没有找到解决方案。
很感谢任何形式的帮助!