簡體   English   中英

將 Angular Universal 9 部署到 Google App Engine

[英]Deploying Angular Universal 9 to Google App Engine

我不確定情況是否已經改變,但似乎我被我正在使用的版本卡住了。 Previously, in Angular 7, we were able to generate server files for Angular Universal at the root level so we could have node main.js in app yaml and Google App Engine just found the way to run our web application. 對於 Angular 9 來說,這似乎不再可能了。

我們將 Angular SSR 用於我們的生產 web 站點。 它編譯 /dist-server 文件夾中的所有服務器文件。 有一個 docker 文件可以將其部署到 Google App Engine 上:

FROM node:12-alpine as buildContainer
WORKDIR /app
COPY ./package.json ./package-lock.json /app/
RUN npm install
COPY . /app
RUN npm run build:ssr // This will create dist/ and dist-server/ folders in the docker
FROM node:12-alpine
WORKDIR /app
COPY --from=buildContainer /app/package.json /app
COPY --from=buildContainer /app/dist /app/dist
COPY --from=buildContainer /app/dist-server /app/dist-server
EXPOSE 4000
CMD ["npm", "run", "serve:ssr"]

package.json我們有:

"serve:ssr": "node dist-server/main.js",

為了開始部署,我們在終端中輸入gcloud app deploy ,這個過程一切正常。 主要問題是這需要將近 25 分鍾才能完成。 耗時部分的主要瓶頸是編譯。

我以為我們可以在本地開發機器上編譯 repo,只將dist/dist-server文件夾復制到 docker 並添加node dist-server/main.js以在 Z05B6053C41A21340AFZDZ 文件中運行我們的 web 應用程序。 每當我嘗試僅復制distdist-server文件夾時。 我收到以下錯誤消息:

復制失敗:stat /var/lib/docker/tmp/docker-builder{random numbers}/dist:沒有這樣的文件或目錄

我還嘗試編譯main.js ,它是 angular 通用的主服務器文件,與app.yaml處於同一級別。 我假設這是根據 Google App Engine Node JS 部署規則所必需的,因為Google有一個示例 repo。 我無法將我們的 main.js 文件編譯到根文件夾中,它給出以下錯誤消息:

發生未處理的異常:Output 路徑不能是項目根目錄!

因此,我正在尋找一種不需要 Google App Engine 重建我們的 repo 的解決方案(因為我們可以在我們的開發機器中執行此操作並上傳已編譯的文件以節省時間)以加快部署過程。

謝謝你的幫助

我發現.dockerignore文件中有 dist 和 dist-server 文件夾。 我已經刪除了這些條目。 我現在可以在谷歌應用引擎上編譯和部署 docker 文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM