我正在尝试构建一个基本的dotnet核心应用程序,并使用AWS中可用的默认工具对其进行部署。我目前正在执行以下步骤:
签入将在运行yml文件的ubuntu映像“ aws / codebuild / dot-net:core-2.1”上触发CodeBuild构建步骤(该文件将创建我实际运行Web应用程序所需的正确文件): / p>
version: 0.2
phases:
build:
commands:
- dotnet restore CMS/CMS.csproj
- dotnet build CMS/CMS.csproj
- dotnet publish CMS/CMS.csproj -o site
artifacts:
files:
- CMS/site/**/*
- CMS/aws-windows-deployment-manifest.json
aws-windows-deployment-manifest.json:
{
"manifestVersion": 1,
"deployments": {
"aspNetCoreWeb": [{
"name": "CMS",
"parameters": {
"appBundle": "./site",
"iisPath": "/",
"iisWebSite": "Default Web Site"
}
}
]
}
}
它一步一步运行都很好,并且在整个过程中我都得到绿色的复选标记,但是当我导航到EB实例时,仍显示原始站点,这表明我的应用程序尚未部署。有什么我想念的吗?
我真的希望我能够从签入到完成部署一个应用程序,而不必修改构建环境,至少现在是这样。
答案 0 :(得分:1)
这是我编写的buildspec.yml,用于从CodeBuild创建beantalk程序包。
version: 0.2
phases:
build:
commands:
- dotnet restore EbCiTest/EbCiTest.csproj
- dotnet build EbCiTest/EbCiTest.csproj
- dotnet publish EbCiTest/EbCiTest.csproj -o ./staging/app
- cp ./EbCiTest/aws-windows-deployment-manifest.json ./EbCiTest/staging/.
artifacts:
files:
- '**/*'
base-directory: 'EbCiTest/staging'
我认为您遇到的麻烦是正在创建的zip文件包含文件的完整路径,因此aws-windows-deployment-manifest.json不在zip文件的根目录下。我建议将所有内容复制到暂存文件夹,然后将该暂存文件夹用作基本目录,该目录将是zip文件的根目录。