You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在GitHub Actions YAML工作流中从build目录构建并推送Docker镜像以部署TypeScript Express服务器至Cloud Run?

如何在GitHub Workflows中指定从build目录执行Docker构建与推送?

我明白你的需求——你已经通过build脚本把所有部署需要的文件都整理到build目录里了,现在要让GitHub Workflows里的Docker命令针对这个目录来构建镜像对吧?有两种简单的方法可以实现,你可以根据自己的偏好选择:

方法1:直接指定Docker构建上下文为build目录

Docker的build命令支持直接传入目标目录作为构建上下文,你只需要把原命令里的.改成./build就行,不用改动工作目录。修改后的步骤如下:

- name: Build and tag image
  run: |-
    docker build ./build --tag "gcr.io/$CLOUD_RUN_PROJECT_ID/$REPO_NAME:$GITHUB_SHA"

这种方法的好处是不需要调整步骤的工作路径,其他命令依然在仓库根目录执行,适合只需要Docker命令针对build目录的场景。

方法2:设置步骤的工作目录为build

如果你希望整个Build and tag image步骤的所有命令都在build目录下执行,可以用GitHub Actions的working-directory参数来指定工作路径,这样docker build .就会默认使用当前的build目录作为上下文了:

- name: Build and tag image
  working-directory: ./build
  run: |-
    docker build . --tag "gcr.io/$CLOUD_RUN_PROJECT_ID/$REPO_NAME:$GITHUB_SHA"

这种方式更适合后续还有其他需要在build目录下执行的操作的场景,能保持步骤的连贯性。

额外提醒

别忘了在执行Docker构建之前,先运行你的build脚本生成build目录哦!你需要在工作流里添加一个步骤来执行构建:

- name: Install dependencies and build project
  run: npm run build

把这个步骤放在Enable the necessary APIs and enable docker auth步骤之前,确保build目录已经生成完毕。

内容的提问来源于stack exchange,提问作者tryingToBeBetter

火山引擎 最新活动