首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >多个asp.net核心项目在docker中有问题

多个asp.net核心项目在docker中有问题
EN

Stack Overflow用户
提问于 2020-05-12 06:24:22
回答 2查看 52关注 0票数 0

我使用Visual Studio 2019并用它创建了我的dockerfile。我的docker文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
WORKDIR /src
COPY ["BackEnd.service.api.csproj", "BackEnd.service.api"]
COPY ["src/BackEnd.Service.Application/BackEnd.Service.Application.csproj", "src/BackEnd.Service.Application/"]
COPY ["src/BackEnd.Service.Model/BackEnd.Service.Model.csproj", "src/BackEnd.Service.Model/"]
RUN dotnet restore "src/BackEnd.service.api/BackEnd.service.api.csproj"
COPY . .
WORKDIR "/src/src/BackEnd.service.api"
RUN dotnet build "BackEnd.service.api.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "BackEnd.service.api.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "BackEnd.service.api.dll"]

和我的项目树:

现在我有了这个错误:

请帮助我如何改变我的项目路线,以便在docker中构建它?

EN

回答 2

Stack Overflow用户

发布于 2020-05-12 13:23:57

问题很可能是您的构建环境造成的。Visual Studio似乎使用您的web应用程序项目作为构建上下文,这意味着它无法从src文件夹访问您的应用程序和模型项目。我建议您尝试使用以下属性将web应用程序的.csproj文件中的Dockerfile上下文显式设置为src目录,所有项目都可以从该目录访问:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<PropertyGroup>
   <TargetFramework>netcoreapp3.1</TargetFramework>
   <DockerfileContext>..\</DockerfileContext>
</PropertyGroup>

然后,您可能需要更新您的folder文件,以指向您的参考项目(应用程序和模型),使其相对于src文件夹。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
COPY ["BackEnd.service.api/BackEnd.service.api.csproj", "src/BackEnd.service.api"]
COPY ["BackEnd.Service.Application/BackEnd.Service.Application.csproj", "src/BackEnd.Service.Application/"]
COPY ["BackEnd.Service.Model/BackEnd.Service.Model.csproj", "src/BackEnd.Service.Model/"]
RUN dotnet restore "src/BackEnd.service.api/BackEnd.service.api.csproj"

您可能需要使用一些目录,但记住构建上下文是关键,这一点非常重要。

或者,您可以尝试将docker-compose项目添加到您的解决方案中,并让该项目构建您的Dockerfile文件。您将能够在docker-compose.yml文件中为应该构建的每个项目指定构建上下文。

票数 0
EN

Stack Overflow用户

发布于 2020-05-12 14:42:27

我建议遵循这篇文章的aspnetcore-app-dockerfiles来手动制作dockerfile,而不是vs项目的docker模板。此外,使用.dockerignore将帮助您简化dockerfile脚本,忽略文件可能不需要运行时。

这是我的项目中的一个例子,希望能有所帮助。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-bionic AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

FROM mcr.microsoft.com/dotnet/core/sdk:3.1-bionic AS build
WORKDIR /build
COPY . .

RUN dotnet restore
RUN dotnet publish "src/BackEnd.service.api/BackEnd.service.api.csproj" -c Release -o /app --no-restore

FROM base AS final
WORKDIR /app
COPY --from=build /app .
ENTRYPOINT ["dotnet", "BackEnd.service.api.dll"]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61745139

复制
相关文章
【Docker】Asp.net core在docker容器中的端口问题
还记得【One by one系列】一步步学习docker(三)——实战部署dotnetcore中遇到的问题么?容器内部启动始终是80端口,并不由命令左右。
DDGarfield
2022/06/23
2.3K0
Spring Batch 可以在一个 Step 中有多个 Tasklet 吗
根据 Spring Batch 的设计,在一个 Step 中只能执行一个 Tasklet。
HoneyMoose
2022/10/15
1.5K0
Spring Batch 可以在一个 Step 中有多个 Tasklet 吗
在RPA项目中有哪些文档,如何使用这些文档
RPA项目也同样遵循同样的方式,不同的厂商和公司定义的文档类型也不太相同,多的可能十几种,少的也要几种,具体的遵循方式和使用标准取决于公司内部的使用章程。
RPA小葵
2020/03/16
1.1K0
在RPA项目中有哪些文档,如何使用这些文档
docker容器启动多个终端,docker启动多个终端
如果我们通过docker attach cd3b79a85d7e命令来开启两个终端启动,我们发现输入命令另一个终端也在同步输入很尴尬。
高久峰
2023/06/27
6380
利用docker在服务器运行多个版本php
php7已经出来好一段时间了,众所周知它对性能的提升很大。现在假设我们有台比较老的服务器,系统是centos6,上面运行着一些老旧项目,其默认自带的php版本是5.3 。虽然说,我们可以升级到php7版本,但是,老旧不兼容php7,我们不能一刀切。最好的方式是php5.3和php7共存。所以,我们可以考虑利用docker来安装其他版本的php,既能保证环境独立,又极少造成性能损耗。下面以安装php7版本为例,介绍下具体做法。
猿哥
2019/04/24
2K0
idea在一个窗口打开多个项目
使用场景:Spring-cloud框架下的项目一般都有多个子项目,就像我们项目由6个子项目,每个子项目单独更新很麻烦,还有相互之间的依赖,所以就把所有的子项目都放到一个文件夹下,只要更新所有的子项目都会更新,依赖也会更新。这样就很方便管理。
赵哥窟
2022/05/13
4.7K0
idea在一个窗口打开多个项目
IDEA在同一工作空间,显示多个项目
IDEA 的工作空间,默认一个项目,多模块。如何在同一个工作空间,同时显示多个项目呢?
JavaEdge
2023/03/02
3.7K0
IDEA在同一工作空间,显示多个项目
如何让PhpStorm同时打开多个项目?(多项目并存的问题)
File -> settings -> Project:项目名 -> Directories -> Add Content Root 版本phpstorm8.0.2,
botkenni
2022/01/10
2.5K0
如何让PhpStorm同时打开多个项目?(多项目并存的问题)
docker安装多个mysql
// 查看版本号 docker -v // 查看运行中的镜像 docker ps -a // 创建mysql镜像容器并启动 docker run --name mystudydb -e MYSQL_ROOT_PASSWORD=xxxxx -p 3xxx:3306 -d mysql docker ps -a // a39是镜像id前几位 // 进入mysql容器内部 docker exec -it a39 bash --连接mysql mysql -uroot -pxxxx show database;
西柚dzh
2022/06/09
1.6K0
docker核心原理
docker是一种容器,应用沙箱机制实现虚拟化。能在一台宿主机里面独立多个虚拟环境,互不影响。在这个容器里面可以运行着我饿们的业务,输入输出。可以和宿主机交互。
一夕如环
2019/02/13
9010
docker核心原理
Docker核心概念
Docker 大部分的操作都围绕着它的三大核心概念 :镜像、容器和仓库。因此 ,准确把握 这三大核心概念对于掌握 Docker 技术尤为重要。
terrence386
2022/07/14
2760
Windows下docker的安装,将ASP.NET Core程序部署在docker中
参考文章: https://www.cnblogs.com/jRoger/p/aspnet-core-deploy-to-docker.html https://www.cnblogs.com/jRoger/p/aspnet-core-deploy-to-docker.html docker for windows下载连接: https://docs.docker.com/docker-for-windows/install/ 关于配置的细节以及docker的下载安装等操作,参考文章中已经介绍的很详细
蓝夏
2018/04/28
3.2K1
Windows下docker的安装,将ASP.NET Core程序部署在docker中
在ASP.NET MVC中如何应用多个相同类型的ValidationAttribute?
ASP.NET MVC采用System.ComponentModel.DataAnnotations提供的元数据验证机制对Model实施验证,我们可以在Model类型或者字段/属性上应用相应的ValidationAttribute。但是在默认情况下,对于同一个类型的ValidationAttribute特性只允许一个应用到目标元素上——即使我们将AllowMultiple属性设置为True。这篇文章的目的就是为了解决这个问题。[源代码从这里下载] 一、一个自定义ValidationAttribute:Ran
蒋金楠
2018/02/07
2.1K0
在ASP.NET MVC中如何应用多个相同类型的ValidationAttribute?
在传统.NET Framework 上运行ASP.NET Core项目
新的项目我们想用ASP.NET Core来开发,但是苦于我们历史的遗产很多,比如《使用 JavaScriptService 在.NET Core 里实现DES加密算法》,我们要估计等到.NET Core 1.2我们才会有大部分的API,通过NodeJs方式有点曲线救国的味道,很多人会不认同,如果要在纯的.NET Core下运行我们的ASP.NET Core项目,在特定的时间进度内很难办到,不仅仅我们所依赖的一些API还没有,还有我们大量的.NET Framwork的库还来不及迁移到.NET Standard
张善友
2018/01/19
2K0
在传统.NET Framework 上运行ASP.NET Core项目
在 Mac 上通过 Docker 运行 Asp.net Core 简易教程
下载地址 https://download.docker.com/mac/stable/Docker.dmg
痴者工良
2021/04/26
1.4K0
用 Docker 在一台宿主机启动多个 etcd 节点
在学习和开发基于 etcd 的服务和功能时,需要自己在本地部署一套 etcd 集群。
amc
2021/02/22
2.1K0
用 Docker 在一台宿主机启动多个 etcd 节点
ASP.NET 实现发送邮件 + 多个收件人 + 多个附件
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huyuyang6688/article/details/42011431
DannyHoo
2018/09/13
2K0
ASP.NET 实现发送邮件 + 多个收件人 + 多个附件
Docker & ASP.NET Core (5):Docker Compose
Compose是一个用来定义和运行多容器Docker应用的工具。使用Compose的时候,你可以使用一个YAML文件来配置你应用的服务。然后根据配置,使用一个命令即可创建并运行所有的服务。
solenovex
2018/12/19
1.6K0
在docker环境导入私有仓库的问题
最近我遇到了一个在 docker 环境导入私有仓库的问题:一个 Golang 项目,使用 gitlab ci 来发布,通过 gitlab runner 调用 docker-compose 来打包,但是在构建时失败了。
LA0WAN9
2021/12/14
1.7K0
在docker环境导入私有仓库的问题
问题:在项目中搜索所有中文
因项目需要,需要将项目中所有的中文改为英文版本。故需要搜索项目中所有中文。用到的IDE为vscode和IntelliJ IDEA。
luoheng
2022/10/27
1.2K0

相似问题

Docker:项目中有多个Dockerfile

466

在.Net核心项目中引用Asp.Net核心类库项目的问题

10

.net 5.0核心web项目的docker文件问题

12

在“自我”中有多个项目?

42

Docker .NET核心-解决方案中的多个项目

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文