程序地带

Abp Next 和 ant-design-pro-blazor 项目踩坑


最近公司新启动一个项目,使用的是Abp Next 和 ant-design-pro-blazor 结合做,前期准备都比较顺畅,当我准备部署线上环境测试的时候,前端的blazor项目构建镜像的时候,就出问题了,错误如下:



Dockfile内容是vs自带功能创建的,本地构建时候失败了,顿时一脸懵,查看了项目文件,带了一些npm的指令。如下:



 


 知道了问题的根源,那就想办法填坑,项目文件的做法,本地开发是不会有问题的,然后本地publish以后,打包构建docker也不会有问题,但是这样就会存在不方便管理的问题,单个人做事没毛病,但笔者线上环境是腾讯云的k8s,走的都是自动构建和发布,所以vs默认生成的dockerfile,是不满足的,因为自动构建的时候是没有安装node的,一堆废话,讲了些有的没得,下面说具体处理,其实使用vs自带的整合前端的模板都会存在类似的问题,例如Angular 结合 core的项目模板等等,笔者是这么处理,首先将前端的项目文件copy一份,重命名为:xxxxxx.Docker.csproj,讲其加入解决方案并编辑新的xxxxxx.Docker.csproj项目文件,去掉npm自动指令,然后替换自动生成dockerfile文件内容,最后再分部构建镜像。最后的dockerfile类似这样的:


 

 


 


#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/aspnet:5.0-buster-slim AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
 
#拉取node镜像,构建前端资源
FROM node:13-alpine AS nodebuilder
WORKDIR /nodeapp
#将完整的前端项目拷贝构建,不要问为什么,问就是不知道
COPY ./src/xxxxxxxx .
RUN ls
#使用cnpm处理,避免npm发癫失效
RUN npm config set unsafe-perm true &&
npm config set registry https://registry.npm.taobao.org &&
npm install -g cnpm --registry=https://registry.npm.taobao.org && cnpm install && cnpm run gulp:pro
 
# RUN npm install
# RUN npm run gulp:pro
RUN ls
RUN ls wwwroot/css
 
FROM mcr.microsoft.com/dotnet/sdk:5.0-buster-slim AS build
WORKDIR /src
.........
RUN dotnet restore "src/xxxxxxxx/xxxxxxxx.Docker.csproj"
COPY . .
WORKDIR "/src/src/xxxxxxxx"
RUN ls
RUN dotnet build "xxxxxxxx.Docker.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "xxxxxxxx.Docker.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
COPY --from=nodebuilder /nodeapp/wwwroot .
ENTRYPOINT ["dotnet", "xxxxxxxx.dll"]
 
 
以上纯属瞎写写,认真你就输了~

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/seven25yq/p/14149802.html

随机推荐

https原理

https原理

前置知识非对称加密中;公钥加密私钥解密,私钥加密公钥能解密,但是公钥加密私钥公钥不能解密CA第三方证书机构https四次握手...

woshiqiuxiaoyan 阅读(536)

什么是直流电源?直流电源作用及应用范围

什么是直流电源?直流电源作用及应用范围

在生活中,人们总是会与诸如此类的熟悉事物接触,但是我们忘记扩展一些与我们的生活紧密相关的知识,即使它并不流行。今天,我将向大家介绍这直流电源&#...

吉事励电源系统 阅读(894)

【笔记】学习阮一峰老师的小程序开发文章

【笔记】学习阮一峰老师的小程序开发文章

学习前端,似乎学习小程序是目前比较简单的入门方式。我参考阮一峰老师的四篇文章,进行了一个上手实操,现将笔记记录如下。下一个目标是掌握网站的搭建。http://...

兰陵小晨 阅读(626)

About EasyX

About EasyX

什么是EasyX?EasyX是一套简单,易用的图形交互库为什么要学习使用它?基础C语言的可视化和交互功能较弱,printf输出效果太简单,没有绘...

哭泣的码农啊 阅读(896)

【题解】【数组】字母个数

题目描述输入英文字符串,统计26个英文字母出现的次数,大小写按照一种计算。输入格式输入共两行第一行一个整数n,代表给出的字母的数量第二行共n个字母输出格式输出...

夜幕下,浅浅的笑 阅读(756)

物联网与互联网的6大区别

物联网互联网通过自动方式获取数据通过人工方式获取数据物联网是虚拟与现实的结合互联网构造了网络虚拟世界物联网是将计算机"装到"一切事务中在互联网时代把一切交给计算机去做物联网提供行业性服...

CSU迦叶 阅读(748)