.NetCore
.NetCore 语言类型识别策略
代码主目录中包含以.sln
或者.csproj
结尾的文件并且不包含Dockerfile
文件时,平台识别项目语言类型为.NetCore
目前仅支持单项目代码维护形式,如果你一个代码仓库维护了多个 Project, 例如一个微服务架构,那么首先建议你将每个 Project 分离到不同仓库或同个仓库不同二级目录下。
编译原理
对于.NetCore 语言的支持与 Dockerfile 一样将构建出镜像而不是 slug 程序包,因此.NetCore 不能使用 Procfile 文件定义。
NetCore 语言构建过程默认使用microsoft/dotnet:2.2-sdk-alpine
编译镜像和microsoft/dotnet:2.2-aspnetcore-runtime
运行环境镜像,若设置其他版本同理。若你未提前下载镜像在构建过程容易出现拉取镜像失败的错误。强烈建议先在 Rainbond 管理节点提前手动获取上述镜像。
如果你的源码对系统环境有依赖,需要单独安装系统类库,目前无法直接使用 Rainbond 提供的默认编译环境编译,你可以采用直接定义 Dockerfile 的方式支持。
编译环境选择
当前版本平台默认使用 microsoft/dotnet:2.2-sdk-alpine
镜像环境进行源码编译。你可以根据需要设置编译环境版本,可选版本目前还包括包括:
- 3.0-sdk
- 2.1-sdk
设置服务环境变量 BUILD_DOTNET_SDK_VERSION=3.0-sdk
即可选择构建环境版本。
编译方式设置
默认编译方式如下:
dotnet restore
dotnet publish -c Release
若需要在dotnet restore
之前执行的命令可以通过 BUILD_DOTNET_RESTORE_PRE
环境变量指定。
若需要改变默认的 dotnet restore
命令可以通过BUILD_DOTNET_RESTORE
环境变量指定。比如设置如下环境变量:
BUILD_DOTNET_RESTORE_PRE=dotnet restore --ignore-failed-sources
关于环境变量的设置参考 服务环境变量