问题标签 [buildspec]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
107 浏览

amazon-web-services - 代码部署后,来自控制台的更新后的 aws cloudformation 嵌套堆栈自定义参数获取其默认值

我正在尝试从控制台更新 CloudFormation 嵌套堆栈上的自定义参数。它已更新,但在代码部署后,它会获得默认值。我想在部署后保存上次更新的值。我在 buildspec.yml 上使用 bash 脚本作为构建命令。如果有堆栈,它可以工作,但不适用于堆栈+嵌套堆栈。有人对此有任何想法吗?我想使用它来从控制台更新参数而不进行代码部署,如果没有更改,则将其保存以供进一步使用。

安慰

发布.sh

构建规范.yml

0 投票
0 回答
97 浏览

terraform - Buildspec.yml 文件在我的 terraform 项目中的位置

所以,我有一个很大的 terraform 文件夹,我把所有的工作都放在了 terraform 中。在那个 terraform 文件夹中,我有一个 terraform-project 子文件夹,它是一个包含模块、环境等的结构化 terraform 项目。我想知道我应该将 buildspec.yml 文件放在哪里,以便我的 aws_codebuild_project 可以看到它。我尝试将它放在模块文件夹中,与模块文件夹位于同一级别,与 terraform-project 文件夹位于同一级别。 这就是我的 terraform 文件夹的样子

aws_codebuild_project 看起来像thisthis

我在这样的环境中使用代码构建

当我运行管道时,在构建阶段我总是会收到这个错误

0 投票
0 回答
60 浏览

docker - Docker 通过发送信号杀死容器

我有 2 个运行并相互通信的 docker 容器。下面是他们的 docker-compose.yml文件:

这是用于编写和运行 docker 的buildspec.yml

test_server基本上是一个服务器无限期地等待test_client连接并执行某些测试(在客户端完成)。一旦test_client测试完成,测试覆盖就会发生,并且 shell 脚本test_client与容器一起在出口上运行。一直在无限循环中test_server等待下一个客户端连接。

现在由于--abort-on-container-exittest_server取决于test_client,一旦客户端退出,服务器也会退出。但我希望服务器接收我在服务器脚本中捕获的信号(SIGINT 或 SIGTERM)并将其传递给应用程序(信号也在应用程序中处理),然后在退出之前执行代码覆盖步骤。

问题是如果我docker kill -s SIGTERM手动执行,则服务器上运行的脚本会接收并捕获 SIGTERM。但是,当我进行代码构建或自动化时,我无法捕获由 SIGTERM 发送的--abort-on-container-exit(我猜这无法完成 - https://github.com/docker/compose/issues/7652)并且容器得到一个 SIGKILL并在运行测试覆盖之前退出。

我的问题是 - 我如何在客户端退出后退出服务器并发送一个可以被服务器捕获的信号以等待并执行覆盖并在退出之前完成脚本?

入口点test_server

ENTRYPOINT ["./runServer.sh"]

运行服务器.sh

test_client与server类似,但没有任何信号陷阱,自然退出。

TIA。如果需要,我可以提供更多信息。

0 投票
0 回答
100 浏览

angular - AWS Codebuild for Angular Project is successful with build error

I am running an AWS CodePipeline building Angular project and shifting it to a S3-Bucket. Simplified buildspec looks like that:

This works well for a successful build. But if the project has any errors, such that the build fails, CodeBuild is still showing success status. In the Codebuild log, the build ends with an Error message like that:

But the AWS console shows green lights, there is no fail notification sent. The application is not changed and remains the one from last successful build.

How does Codebuild know that the executed build fails? We have a Java Backend, where an error in build phase immediately sets the builds/codepipelines state to FAILED, which would be the apreciated behavior here as well.

0 投票
0 回答
22 浏览

amazon-web-services - 如何通过 buildspec 参数化 dockerfile 中的阶段名称?

我们如何使用 buildspec 简单地参数化 dockerfile 中的阶段名称?我的意思是我们有 buildpsec: version: 0.2 env: shell: bash variables: Stage: "test"

Dockerfile:来自 Ubuntu 作为测试

我希望 buildspec 中的阶段名称在 dockerfile 中自动更改,或者 dockerfile 从 buildspec 中获取名称。

0 投票
1 回答
234 浏览

amazon-web-services - docker build build-args 在 buildspec.yml 文件中包含空格不起作用

我们正在使用 CodeBuild AWS 服务,它使用 buildspec.yml 文件在构建的不同阶段(pre_build、build、post_build 等)执行一些命令。我想要一个全局 buildspec.yml 文件,感谢 CodeBuild 中的环境变量,可以对其进行编辑。例如,我们传递环境类型(staging、pre-prod、production...等)、要执行的命令、S3 存储桶等。

在这个文件中,我创建了一个 docker 镜像,所以我使用 docker build,我标记我的镜像,添加参数以传递给 Dockerfile,并指定 Dockerfile 路径。

使用此命令:

docker build -t ABC:v1 --build-arg LAUNCH_COMMAND=${LAUNCH_COMMAND} -f ${DOCKERFILE_PATH} .

要指定,我使用 build-arg 传递命令来启动我们的应用程序(环境之间不一样)。传递的第一个是 LAUNCH_COMMAND,即 Dockerfile 中变量的名称,第二个带有${}语法的是 AWS CodeBuild 的环境变量。

问题是,我的启动命令包含空格。

这是我尝试过的:

带空格的 CodeBuild 变量:KO

直接写在 docker build 命令中,带空格并用引号括起来:KO

正如我后来发现的,根据这个线程,当 Dockerfile 获取变量时,我们需要对变量进行转义以保留空格。

带有空格的 CodeBuild 变量:KO

直接写在 docker build 命令中,空格转义并用引号括起来:OK

通过对 CodeBuild 环境进行回显,可以保留空格以及转义字符。所以问题似乎出在 CodeBuild 将变量传递给 docker build 时。

我在构建中收到的错误消息是:errorMessageWhenKO

0 投票
0 回答
77 浏览

json - 使用 codebuild (bash) 创建 appspec json 文件

嗨,如何在 codebuild buildspec 中创建 appspec.json 构建工件?我在上面试过了,它不起作用。错误是:

我也尝试在 EOF 之前添加 { 的前面,但它也不起作用:

我也尝试将所有内容放在一行中 ({"version":0.0,...) 但我的 CodeDeploy 说模板无法解析。谢谢

0 投票
1 回答
24 浏览

spring - Spring Boot 应用程序的构建规范

所以我坚持一件事,我有一个应用程序,它是在 Spring Boot 上编写的,位于 Application Load Balancer 后面的 Fargate 上。我应该对该应用程序进行负载性能测试并创建构建规范文件,我做到了,但我在为该服务构建管道方面完全是新手,所以不知道如何编写构建规范文件。有人可以帮助我并给出正确的方向如何为该服务编写构建规范吗?

0 投票
0 回答
13 浏览

certificate - CodeBuild buildSpec 证书在哪里?

我正在使用 buildSpec 指定并从 S3 中提取证书。

像这样:

我认为我的问题很简单: 该证书在哪里放置在环境中???

我问的原因是我需要将证书位置作为环境变量传递给 npm install 命令,以便它能够访问我们的现场依赖服务器。例如:

但我还没有找到“certs.pem”文件在 codeBuild 环境中的位置。

0 投票
0 回答
28 浏览

amazon-web-services - 无法在 AWS CodeBuild 安装阶段安装 SBT

我正在使用 CodePipeline 和 Codebuild,当我使用命令设置我的 buildspec.yml 时,该过程在尝试在 /etc/apt/sources.list.d/sbt.list 中添加行时出错。

错误是以下错误屏幕截图