繁体   English   中英

使用 AWS copilot 创建了一个管道,原始推送有效但是当我更改代码并将它们推送到 github 时它们没有显示

[英]Created a pipeline using AWS copilot, original push worked but when I make changes to code and push them to github they don't show up

对此有任何帮助将不胜感激:

我在这里遵循了 AWS copilot 的指南: https://aws.github.io/copilot-cli/docs/getting-started/first-app-tutorial/然后是创建管道并将其连接到 github 的指南这里: https://aws.github.io/copilot-cli/docs/concepts/pipelines/ 这一切似乎都有效,我可以在 aws 中指示的 url 查看我正在处理的 React 应用程序。

我的问题是,当我更改我的代码然后将其推送到跟踪的 github 分支时,在 url 查看应用程序时不会出现更改。但是,当我推送到 github 时,管道确实注册了发生了变化。 它表示已经进行了更改,并经历了创建新构建的流程。 但无论我尝试什么,这些变化似乎并没有真正出现。

我假设我在这里遗漏了一些简单的东西,并且出于某种原因,docker 正在基于原始代码构建应用程序。 但我想不通为什么会这样。 也许我的 DockerFile 有点奇怪?

我的 docker 文件如下所示:

FROM node:16.14
WORKDIR /app
ENV PATH /app/node_modules/.bin:$PATH
COPY package.json ./
COPY package-lock.json ./
RUN npm i
COPY . ./
CMD ["npm", "run", "server"]

我对这应该如何工作的理解是,我将新代码推送到 github,它被发送到 aws 管道,并根据该代码生成一个新图像,然后用于创建一个托管在 ECS 上的容器。 但显然我错过了一些东西。

副驾驶部署确实有效。 我不确定是否

  1. 问题是我的管道正在成功构建(因为它不会在控制台中抛出错误),然后只是没有将其托管在与副驾驶部署相同的 url。 或者
  2. 管道遇到了一个错误,该错误并未显示在管道控制台中。 深入研究日志,我发现了这一点:
echo "Cloudformation stack and config files were not generated. Please check build logs to see if there was a manifest validation error." 1>&2;

这似乎指向第二种选择。 如果这是问题,关于如何解决容器中发生的任何问题有什么建议吗?

该错误提示我检查构建日志,但这些是构建日志。 我可以检查更细粒度的构建日志吗?

在 ECS 中运行容器时,除非您的容器已经因为错误而崩溃,否则它通常不会从您的新映像中获取代码更改,除非您强制进行新部署。 您可以使用 AWS CLI 通过以下命令从命令行执行此操作:

aws ecs update-service --cluster <cluster_name> --service <service_name> --force-new-deployment --profile <aws_profile_name>

请注意,如果您使用默认的 aws cli 配置文件,则该配置文件是可选的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM