文档首页/ 云应用引擎 CAE/ 最佳实践/ ASP.NET Core应用部署到CAE
更新时间:2024-07-19 GMT+08:00
分享

ASP.NET Core应用部署到CAE

CAE源码部署支持Docker运行时,您可以自行配置Dockerfile文件,在Dockerfile中安装构建环境,定义构建命令,以此支持更多编程语言的项目在CAE部署。

本文以ASP.NET Core应用为例。

前提条件

创建环境创建应用

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代码仓库

创建及配置组件

  1. 在左侧导航栏选择“组件列表”
  2. 在页面上方,下拉选择已创建的应用和环境,单击“新增组件”
  3. 参考表2设置组件信息。

    表2 组件基本信息

    参数

    说明

    组件名称

    新建组件的名称。本实践输入名称为“test-dotnet”。

    版本号

    组件的版本号。

    本实践版本号为1.0.0。

    实例规格

    选择实例规格,例如:0.5core、1GiB。

    实例数量

    输入实例数为1。

    代码源

    选择“源码仓库 > GitHub”。选择设置GitHub仓库授权中创建好的授权,选择示例代码仓。

    图2 配置基本信息

  4. 语言/运行时选择“Docker”,Dockerfile地址填写./Dockerfile.linux。

    图3 配置Dockerfile

  5. 单击“配置组件”,跳转至“组件配置”页面。
  6. 找到“访问方式”,单击“编辑”。
  7. “从环境外部访问本组件”页面,选择“负载均衡配置”,并单击“添加负载均衡配置”

    参考图4配置负载均衡。
    图4 配置负载均衡

  8. 单击“确定”,完成负载均衡配置。
  9. 单击组件配置页面上方的“配置并部署组件”,在右侧弹框中单击“确定”,待部署执行完成后,配置生效。

查看应用

  1. 在左侧导航栏,选择组件列表,返回组件列表页面。
  2. 单击“test-dotnet”组件“访问地址”列的公网访问地址。

  3. 您还可以访问应用的静态页面。

相关文档