Docker在Linux上运行NetCore系列(四)使用私有Nuget与多个本地包引用运行ASPNetCore

转发请注明此文章作者与路径,请尊重原著,违者必究。

本篇文章演示了使用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

时间: 2024-10-08 23:34:33

Docker在Linux上运行NetCore系列(四)使用私有Nuget与多个本地包引用运行ASPNetCore的相关文章

Docker在Linux上运行NetCore系列(五)更新应用程序

原文:Docker在Linux上运行NetCore系列(五)更新应用程序 转发请注明此文章作者与路径,请尊重原著,违者必究. 本篇文章与其它系列文章不同,为了方便测试,新建了一个ASP.Net Core视图应用. 备注:下面说的应用,只是在容器中运行的应用程序. 查看现在运行的应用 容器中已经运行了一个应用testaspnetcoredockerlinuxname,版本是1.0.我们下面查看一下已经在运行中的应用. 输入命令[sudo docker ps]可以看到运行中的容器. 红色线的就是我们

Docker在Linux上运行NetCore系列(一)配置运行DotNetCore控制台

转发请注明此文章作者与路径,请尊重原著,违者必究. 本篇文章操作系统信息 Linux:ubuntu 16.04.3 amd64 查看NetCore支持的Linux系统 NetCore不是支持Linux的所有系统,只支持部分,所以在Linux上安装NetCore之前要查看系统与版本是否支持NetCore. 查看NetCore2.0以上各个版本在Linux支持的系统及版本: https://github.com/dotnet/core/blob/master/release-notes/2.0/2.

Docker在Windows上运行NetCore系列(一)使用命令控制台运行.NetCore控制台应用

本篇文章操作系统信息 Windows:Window 10 Visual Studio:2017 15.8.0 创建项目并添加Dockerfile 在VS2017及以上版本上创建一个控制台项目,这里的名称叫[ConsoleAppDockerWindows2]. 创建DockerFile文件 1)右键项目 --> 选中[添加] --> 选中[容器业务流程协调程序支持] 2)选择[Docker Compose] 3)目标OS:选择[Windows] 创建后的解析 创建完成后,可以看到项目中多了Doc

新手指南:通过 Docker 在 Linux 上托管 .NET Core

这篇文章基于我之前的文章 .NET Core 入门[1].首先,我把 RESTful API 从 .NET Core RC1 升级到了 .NET Core 1.0,然后,我增加了对 Docker 的支持并描述了如何在 Linux 生产环境里托管它. 我是首次接触 Docker 并且距离成为一名 Linux 高手还有很远的一段路程.因此,这里的很多想法是来自一个新手. 安装 按照 https://www.qixoo.qixoo.com/net/core 上的介绍在你的电脑上安装 .NET Core

idea docker 连接 linux 上的 docker

安装插件 Docker插件,首先需要在你的IDEA中安装Docker插件,定位到File-Setting-Plugins后搜索Docker Integration安装 配置Docker服务器,在IDEA中定位到File-Setting-build,Execution,Deployment-Docker 运行 idea 项目到 远程 linux docker 上 编写 Dockerfile 文件 添加 maven 依赖 <build> <finalName>${project.art

使用 Docker 在 Linux 上托管 ASP.NET Core 应用程序

说在前面 在阅读本文之前,您必须对 Docker 的中涉及的基本概念以及常见命令有一定了解,本文侧重实战,不会对相关概念详述. 同时请确保您本地开发机器已完成如下安装: Docker 18.06 或更高版本的 Docker 客户端 .NET Core SDK 2.2 或更高版本 Visual Studio Code 代码编辑器,以及 C# 语法插件 1.17.1 或更高版本 注:本文实验环境是 Ubuntu 18.04 LTS.如果您的机器是 Window,也可以把 Docker 装在虚拟机或服

docker在linux上的安装

本文链接:https://blog.csdn.net/zhangbeizhen18/article/details/85239758 报错信息: Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details. 使用命令: sy

Docker在Linux上运行NetCore系列(二)把本地编译好的镜像发布到线上阿里云仓库

转发请注明此文章作者与路径,请尊重原著,违者必究. 开始 本篇文章结束在本地创建完成镜像后,发布到公共仓库.这里的仓库是阿里云的仓库. 流程是:进入阿里云Docker仓库控制台->新建镜像仓库->按照阿里云教程上传本地镜像到云仓库->到阿里云控制台查看仓库,存在则成功. 进入阿里云仓库 这里使用的是阿里云的存储,可以注册阿里云账号,并且进入仓储,获取私人的存储地址. 设置阿里云仓储,首先进入https://cr.console.aliyun.com/cn-shenzhen/reposit

Docker在Linux上 基本使用

安装环境(Linux) 查看centos版本: uname -r Docker 要求CentOS 系统的内核版本高于 3.08 升级软件包及内核:yum update 安装Docker 安装: yum install docker 启动 docker: systemctl start docker 查询docker版本: docker -v 将docker服务设为开机启动:systemctl enable docker 停止docker: systemctl stop docker 常用操作: