Docker在Linux上运行NetCore系列(四)使用私有Nuget与多个本地包引用运行ASPNetCore
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Docker在Linux上运行NetCore系列(四)使用私有Nuget与多个本地包引用运行ASPNetCore,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2102字,纯文字阅读大概需要4分钟。
内容图文
转发请注明此文章作者与路径,请尊重原著,违者必究。
本篇文章演示了使用Dockerfile在Linux(ubuntu16.04)系统上构建ASPNetCore应用,并且在一个解决方案中存在多个项目之间的引用。还会使用到私有Nuget包的引用。
构建项目
为了演示更加全面,这里按照简单的领域驱动模式建立了几个项目。
Web端为:TestWebDockerOnLinux。使用swagger对外提供API,并且包含了Dockerfile文件。
基础设施层:TestWebDockerOnLinux.Core。封装了基础实体类。
核心逻辑层:TestWebDockerOnLinux.Domain。封装了业务逻辑。
仓储层:TestWebDockerOnLinux.Repository。封装了对数据库的操作,使用仓储模式。
因为Web API层在TestWebDockerOnLinux,所以Dockerfile在此项目中。
项目构建都很简单,你自己可以构建两个项目,一个为Web,另外一个基础类库。为了演示对私有Nuget包的编译,我们在Web层上引用了以下的私有Nuget包并且引用了本地项目:
你可以按照系列(三)那样修改Dockerfile,但是这里演示不修改Dockerfile的路径,贴图:
下面详细说明:
Dockerfile它是构建程序的配置文件,首先说明应用所依赖的环境,然后进行编译,最后运行。整个流程是跟我们平常使用的代码是一样的。
运行Dockerfile文件构建镜像
把项目复制到linux系统,并且进入解决方案的根目录(不是Web应用里面的目录)。
并且运行命令【sudo docker build -t testwebdockeronlinux:1.0.0 .】构建镜像。
构建时,报以下错误:
意思是引用私有Nuget包失败,因为默认都是使用微软的nuget包地址。所以需要指定一下。
配置私有Nuget包
因为我们的Nuget包有引用公共包路径,也有引用私有的包路径。所以要指定nuget的包。
先看看错误,错误指示当执行【dotnet restore】时报的错误,所以看看官网有无指定nuget地址的方法。
可以看到命令两种方法,分别是[--configfile]、[-s|--source]来指定nuget。--configfile可以指定nuget的配置文件,--source可以指定nuget地址。因为我们是多个地址,所以这里演示指定文件[--configfile]。
步骤是:Web项目下创建nuget.config文件->修改Dockerfile->运行Dockerfile。
首先先创建nuget.config文件,添加私有的以及共有的:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="AspNetCore" value="https://dotnet.myget.org/F/aspnetcore-ci-dev/api/v3/index.json" />
<add key="AspNetCoreTools" value="https://dotnet.myget.org/F/aspnetcore-tools/api/v3/index.json" />
<add key="NuGet" value="https://api.nuget.org/v3/index.json" />
<!--这里添加自己的包地址-->
<add key="MyNuGet" value="https://xxx/nuget" />
</packageSources>
</configuration>
然后复制nuget.config文件到Docker编译目录,以及编译时指定nuget配置文件,如下:
之后,运行命令【sudo docker build -t testwebdockeronlinux:1.0.0 .】构建镜像,成功了。
构建容器并运行程序
使用命令运行应用程序:【sudo docker run -d --name testwebdockeronlinux -p 8082:80 testwebdockeronlinux:1.0.0】。
访问 http://192.168.3.220:8082/swagger/index.html,成功了:
-d是后台运行,--name指定容器名称,-p指定程序80端口映射到外网8082访问。
可以关注本人的公众号,多年经验的原创文章共享给大家。
原文:https://www.cnblogs.com/alunchen/p/10183646.html
内容总结
以上是互联网集市为您收集整理的Docker在Linux上运行NetCore系列(四)使用私有Nuget与多个本地包引用运行ASPNetCore全部内容,希望文章能够帮你解决Docker在Linux上运行NetCore系列(四)使用私有Nuget与多个本地包引用运行ASPNetCore所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。