c# - 使用 docker 在非云环境中部署 dotnet core 应用程序
问题描述
我一直在 youtube 上观看有关 docker 及其工作原理的视频。我明白了这个概念,我真的很喜欢它。但是由于我们的代码部署到的环境的性质以及其他一些强制性限制,我不喜欢将我的源代码包含到容器中的想法。顺便说一句,这里是视频的链接
观看视频时,我的脑海中突然出现了几个问题;
是否可以在不将源代码包含到图像中的情况下使用 docker?也许只是将 bin 文件复制到图像中并在其中运行 dotnet 并仍然维护一个小的 docker 图像文件?
我们的客户不在云平台中,出于安全目的,目前处于封闭网络中。我仍然可以将 docker 容器部署到它们而无需连接到存储库吗?就像来自媒体 (CD/USB) 中的安装程序?
我们的应用程序是一个用 .NET Core 2.1 编写的微服务应用程序。我们是否需要将每个服务放入自己的容器中?
解决方案
完全可以在不包含源代码的情况下创建图像。在这里,您可以做两种类型的事情。
- 在本地发布您的 api 或 webapp,然后从该特定发布的文件中创建图像。
- 创建多阶段图像。这里仍然是您的源代码构建到图像中,但它是中间图像。
对于注册表,有以下类型。
- 上市
- 私人的
本地或本地。
- 上面的一些选项(如 dockerhub)只允许将单个图像作为私人免费帐户。
- 您可以创建自己的本地存储库。
这取决于您,但最好为每个 Web api 提供单独的图像和容器。让我们假设您有两个几乎一起运行的 api,然后您可以同时部署两者。(即使是 docker 也允许暴露多个端口,所以你不必担心)
推荐阅读
- javascript - CSS 选择器的 If 函数 - GTM
- python - Python(MySQL 连接器):获取实时数据并更新变量
- reactjs - 关于使用 Redux 工具包的 `useSelector` 和 `createSelector` 的混淆
- flask - 已部署的 web 应用程序中的烧瓶路由不起作用
- c++ - CTAD 和带有参数包成员的模板构造函数
- php - 数据库错误:include(database-connection.php):无法打开流:没有这样的文件或目录
- javascript - 使用 @material-ui/pickers DatePicker 显示并允许选择月外的日期
- python - 找出两个 numpy 矩阵的相似程度
- java - 运行 jar 文件时出现 ArrayIndexOutofBoundsException
- c++ - Windows 10 C++ 使用 Visualstudio 代码但不会让我文件>新建>项目