簡體   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