
# ASP.NET Core应用部署到CAE
CAE源码部署支持Docker运行时，您可以自行配置Dockerfile文件，在Dockerfile中安装构建环境，定义构建命令，以此支持更多编程语言的项目在CAE部署。
本文以ASP.NET Core应用为例。
#### 约束与限制
当前不支持"源码仓库"和"软件包"功能，推荐使用[CAE对接GitHub Actions实现自动CICD部署](https://support.huaweicloud.com/bestpractice-cae/cae_05_0064.html)。
#### 前提条件
已[创建环境](https://support.huaweicloud.com/usermanual-cae/cae_03_0053.html)和[创建应用](https://support.huaweicloud.com/usermanual-cae/cae_03_0002.html)。
#### Fork示例源码
使用您的账号登录GitHub，并Fork示例源码仓库到个人账号。
源码地址：<https://github.com/Azure-Samples/dotnetcore-docs-hello-world>。
#### Dockerfile解析
示例仓库中的Dockerfile文件。
```
# 指定基础镜像为mcr.microsoft.com/dotnet/sdk:7.0，该基础镜像作为ASP.NET Core项目的构建环境
FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build
# 指定工作目录
WORKDIR /source
# 从构建主机上复制源码到基础镜像，并指定工作目录和构建命令
COPY . ./dotnetcore-docs-hello-world/
WORKDIR /source/dotnetcore-docs-hello-world
RUN dotnet publish -c release -o /app 
# 指定新的基础镜像为mcr.microsoft.com/dotnet/aspnet:7.0，并将第二步生成的构建产物复制到新的基础镜像中
FROM mcr.microsoft.com/dotnet/aspnet:7.0
WORKDIR /app
COPY --from=build /app ./
# 设置环境变量PORT，并声明容器端口为80
ENV PORT 80
EXPOSE 80
# 指定容器启动命令
ENTRYPOINT ["dotnet", "dotnetcoresample.dll"]
```
 #### 设置GitHub仓库授权
设置GitHub仓库授权，使构建工程、应用组件等可以使用授权信息访问GitHub源码仓库。
1. 登录CAE控制台。
2. 在左侧导航栏中选择"系统设置"。 
   
   
   
3. 单击"源码仓库授权"模块中的"编辑"，进入"已授权源码仓库"页面。
4. 单击"新增授权"，参考[表1]选择需要的源码仓库，并配置参数。
   
    表1授权参数说明 
   | 参数   | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
   |:---|:---|
   | 授权名称 | 授权名称，创建之后不可更改                                                                                                                                                                                                                                                                                                                                                                                                                                        |
   | 仓库类型 | 支持以下官方仓库类型： 1. 选择GitHub代码仓库。  2. 选择"授权方式"。 - OAuth：请单击"使用OAuth授权"，根据页面提示完成授权创建。  - 私人令牌：输入已获取到的私人令牌。     |
      
   
   
5. 单击"确认"，完成GitHub代码仓库授权。 
   图1授权GitHub代码仓库   
   ![](https://support.huaweicloud.com/bestpractice-cae/zh-cn_image_0000001874229561.png "点击放大")
   
   
   
 
#### 创建及配置组件
1. 在左侧导航栏选择"组件列表"。
2. 在页面上方，下拉选择已创建的应用和环境，单击"新增组件"。
3. 参考[表2]设置组件信息。
   
    表2组件基本信息 
   | 参数   | 说明                                                                                      |
   |:---|:---|
   | 组件名称 | 新建组件的名称。本实践输入名称为"test-dotnet"。                                                          |
   | 版本号  | 组件的版本号。 本实践版本号为1.0.0。                                      |
   | 实例规格 | 选择实例规格，例如：0.5core、1GiB。                                                                 |
   | 实例数量 | 输入实例数为1。                                                                                |
   | 代码源  | 选择"源码仓库 \> GitHub"。选择[设置GitHub仓库授权]中创建好的授权，选择示例代码仓。 |
      
   图2配置基本信息   
   ![](https://support.huaweicloud.com/bestpractice-cae/zh-cn_image_0000001874182653.png "点击放大")
   
   
   
4. 语言/运行时选择"Docker"，Dockerfile地址填写./Dockerfile.linux。 
   图3配置Dockerfile   
   ![](https://support.huaweicloud.com/bestpractice-cae/zh-cn_image_0000001966968373.png "点击放大")
   
   
   
5. 单击"配置组件"，跳转至"组件配置"页面。
6. 找到"访问方式"，单击"编辑"。
7. 在"从环境外部访问本组件"页面，选择"负载均衡配置"，并单击"添加负载均衡配置"。 
   参考[图4]配置负载均衡。
   图4配置负载均衡   
   ![](https://support.huaweicloud.com/bestpractice-cae/zh-cn_image_0000001874263689.png "点击放大")
   
   
   
8. 单击"确定"，完成负载均衡配置。
9. 单击组件配置页面上方的"配置并部署组件"，在右侧弹框中单击"确定"，待部署执行完成后，配置生效。
 
#### 查看应用
1. 在左侧导航栏，选择组件列表，返回组件列表页面。
2. 单击"test-dotnet"组件"访问地址"列的公网访问地址。 
   ![](https://support.huaweicloud.com/bestpractice-cae/zh-cn_image_0000001967669469.png "点击放大")
   
   
3. 您还可以访问应用的静态页面。 
   ![](https://support.huaweicloud.com/bestpractice-cae/zh-cn_image_0000001864808376.png "点击放大")
   
   
 
