将你的 Astro 网站部署至 Google Cloud
Google Cloud 是一个完整的 Web 应用托管平台,可以用于部署 Astro 网站。
如何部署?
段落标题 如何部署?Cloud Storage(仅静态网站)
段落标题 Cloud Storage(仅静态网站)-
创建一个新的 GCP 项目,或选择你已有的项目。
-
在 Cloud Storage 中创建一个新的存储桶。
-
为存储桶设定名称和其他必需的设置。
-
将你的
dist
文件夹上传到存储桶中,或使用 Cloud Build 进行上传。 -
开放公共访问权限,通过为
allUsers
添加一个名为Storage Object Viewer
的新权限。 -
编辑网站配置,将
index.html
设置为入口点,将404.html
设置为错误页面。
Cloud Run(SSR 和静态网站)
段落标题 Cloud Run(SSR 和静态网站)Cloud Run 是一个无服务器平台,可以让你在不必管理任何基础设施的情况下运行容器。它可以用于部署静态网站和 SSR(服务器端渲染)网站。
服务准备
段落标题 服务准备-
创建一个新的 GCP 项目,或选择你已有的项目。
-
确保已启用 Cloud Run API。
-
创建一个新的服务。
创建 Dockerfile 并构建容器
段落标题 创建 Dockerfile 并构建容器在将 Astro 网站部署到 Cloud Run 之前,你需要创建一个 Dockerfile,用于构建容器。在我们的操作指南部分可以找到有关如何用 Docker 来构建你的 Astro 网站更多信息。
创建 Dockerfile 后,将其构建成一个镜像,并将镜像推送到 Google Cloud 中。你有几种方式可以完成这个过程:
使用 Docker 本地环境构建:
使用 docker build
命令构建镜像,然后使用 docker tag
命令为镜像添加标签,接着使用 docker push
命令将镜像推送到镜像 Registry。对于 Google Cloud,Artifact Registry
是最简单的选择,但你也可以使用 Docker Hub 等其他选项。
请修改上述命令中的以下值来适用于你的项目:
SOURCE_IMAGE
:本地镜像名称或镜像 ID。HOSTNAME
:镜像 Registry 的主机名(gcr.io
、eu.gcr.io
、asia.gcr.io
、us.gcr.io
、docker.io
等)。PROJECT
:你的 Google Cloud 项目 ID。TARGET-IMAGE
:存储在镜像 Registry 中的镜像名称。TAG
:与镜像关联的标签。
你可以在 Google Cloud 文档 中了解更多信息。
使用其他工具:
你可以使用支持 Docker 的 CI/CD 工具,例如 GitHub Actions。
使用 Cloud Build 进行构建:
不同于在本地构建 Dockerfile,你可以让 Google Cloud 在远程进行构建。参见 Google Cloud Build 文档。
部署容器
段落标题 部署容器部署可以在你的终端上手动处理,使用 gcloud
命令进行部署(参见 Google Cloud 文档),或者使用 Cloud Build,亦或者其他任何 CI/CD 系统进行自动化部署。
不要忘记在 Cloud Run 权限设置中为 allUsers
组添加 Cloud Run Invoker
权限!