1

我正在为此创建 Windows WPF 应用程序的 aws codepipeline 我已经创建了自定义 docker 映像,其中包含 VS2017 构建工具,并且该映像将作为构建环境来构建我所有的 .Net 框架相关应用程序。我已经从 UI 即 aws 控制台成功创建了 aws 管道,但是我正在尝试使用 typescript 为同一事物创建 CDK 堆栈,下面是我的代码

import cdk = require('@aws-cdk/core'); 
import codecommit = require('@aws-cdk/aws-codecommit'); 
import codebuild = require('@aws-cdk/aws-codebuild'); 
import codepipeline = require('@aws-cdk/aws-codepipeline'); 
import codepipeline_actions = require('@aws-cdk/aws-codepipeline-actions'); 
import s3 = require('@aws-cdk/aws-s3'); 
import { Repository } from '@aws-cdk/aws-codecommit'; 

export class CdkClickOnceAppPipelineStack extends cdk.Stack { 
  constructor(scope: cdk.Construct, id: string, props?: cdk.StackProps) { 
    super(scope, id, props); 

    const code = codecommit.Repository.fromRepositoryName(this, 'WPFAppRepo','WPFClickOnceApp'); 
    const cdkBuild = new codebuild.PipelineProject(this,'CdkBuild',{ 
     description: 'AWS build project for .Net WPF click once application', 
     environment: {buildImage:codebuild.WindowsBuildImage.WIN_SERVER_CORE_2016_BASE} 
    }); 

  } 
}

在此代码中,我可以指定environment哪个WIN_SERVER_CORE_2016_BASE是 aws 提供的基本映像,但我想指定我在 aws ECR 存储库中准备好的自定义 docker 映像。

有人可以帮我解决这个问题吗?我在互联网上找不到 Windows .Net 框架的文档。

4

1 回答 1

2

你可以像这样定义一个图像:

 const ecrRepo = awsEcr.Repository.fromRepositoryArn (this,[repo Id],'arn:aws:ecr:us-east-1:[account Id]:repository/RepoName');

const cdkBuild = new codebuild.PipelineProject(this,'CdkBuild',{ 
     description: 'AWS build project for .Net WPF click once application', 
     environment: {buildImage:codebuild.WindowsBuildImage.fromEcrRepository(ecrRepo,'latest')} 
    });

它在这里: https ://docs.aws.amazon.com/cdk/api/latest/docs/aws-codebuild-readme.html

于 2019-12-09T05:59:16.077 回答