我正在尝试创建一个 Docker 映像,其中标签将成为最后一个成功的内部版本号,但我似乎找不到这样做的方法。
这是我的脚本
resource "aws_codebuild_project" "tf_codebuild_project" {
name = var.aws_project_name
description = var.aws_project_name
build_timeout = "60"
service_role = var.aws_codebuild_role_arn
source {
type = "CODECOMMIT"
location = var.aws_codecommit_repo_url
buildspec = "buildspec.yml"
git_clone_depth = 1
}
artifacts {
type = "NO_ARTIFACTS"
}
environment {
compute_type = "BUILD_GENERAL1_SMALL"
image = "aws/codebuild/standard:4.0"
type = "LINUX_CONTAINER"
image_pull_credentials_type = "CODEBUILD"
# https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-env-vars.html
environment_variable {
name = "AWS_DEFAULT_REGION"
value = var.aws_default_region
}
environment_variable {
name = "AWS_ACCOUNT_ID"
value = var.aws_account_id
}
environment_variable {
name = "IMAGE_NAME"
value = var.aws_codecommit_repo_name
}
environment_variable {
name = "IMAGE_TAG"
value = "${CODEBUILD_BUILD_NUMBER}"
}
}
tags = var.aws_codebuild_tags
}
这就是我得到的
>
> Error: Reference to undeclared input variable
> │
> on modules\codebuild\main.tf line 50, in resource "aws_codebuild_project" "tf_codebuild_project":
> 50: value = "${CODEBUILD_BUILD_NUMBER}"
> │
> An input variable with the name "CODEBUILD_BUILD_NUMBER" has not been declared. This variable can be declared with a variable "CODEBUILD_BUILD_NUMBER" {} block.
所以问题在于:
environment_variable {
name = "IMAGE_TAG"
value = "${CODEBUILD_BUILD_NUMBER}"
}