Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

使用 Cloud Run 部署 Docker 应用 #12

Open
chen86860 opened this issue Apr 10, 2024 · 0 comments
Open

使用 Cloud Run 部署 Docker 应用 #12

chen86860 opened this issue Apr 10, 2024 · 0 comments
Labels

Comments

@chen86860
Copy link
Owner

使用 Cloud Run 部署 Docker 应用

介绍

Docker 是一种容器化技术,旨意提供一种轻量级、可移植、自包含的软件运行环境。Cloud Run 是 Google Cloud Platform (GCP) 提供的一种无服务器容器化服务,可以让你在容器中运行任何 HTTP 请求驱动的容器化应用。本文将介绍如何使用 GCP 的 Cloud Run 部署 Docker 应用。

部署方式选型

服务 优点 缺点
Cloud Run 无服务器、自动扩展、按需付费,且每月拥有免费额度,轻量使用可以免费 限制 15 分钟超时、最大并发数 80、最大内存 2GB
Fly.io 专门的 Docker 容器提供商,部署方面简单 需要绑定信用卡,且每月有$5 的月费,无免费体验额度
Railway 类似 Fly.io, 也是专门的 Docker 容器提供商,部署方面简单 需要绑定信用卡,且每月有$5 的月费,无免费体验额度
Render Web App 部署提供商,提供了多种的语言架构,且可免费体验使用 限制较多

在权衡了各种因素后,我选择了 GCP 的 Cloud Run 作为部署 Docker 应用的服务。因为其无服务器、自动扩展、按需付费,且每月拥有免费额度,轻量使用可以免费。

部署步骤

1. 账号准备

  • 创建 Google Cloud Platform (GCP) 账号
  • 开启账单服务
  • 开启 Cloud Run API

不再赘述

2. 创建 Docker 镜像仓库

打开 Artifact Registry,点击【Create Repository】 来创建 Docker 镜像仓库。填写名称和位置,点击【Create】。

创建示例

3. 构建 Docker 镜像

安装 Docker 以及 gcloud cli, 并登录 gcloud,不再赘述。

在 Dockerfile 所在目录下执行以下命令构建 Docker 镜像:

docker build -t gcr.io/your-project-id/your-repo-name/your-image-name:your-tag .

参数含义:

  • gcr.io/your-project-id/your-repo-name: 这里是你的 Docker 仓库地址,可以在第二步创建好后的 Artifact Registry 中查看:

    • 仓库地址
  • your-image-name:你的镜像名称

  • your-tag:你的镜像标签

Warning

如果你在用 Apple M 系列芯片的 Mac 电脑,可能会遇到在 Cloud Run 部署失败的问题,此时需要在构建镜像时指定构建平台为 linux/amd64,如下所示:

docker build --platform linux/amd64 -t gcr.io/your-project-id/your-repo-name/your-image-name:your-tag .

参考链接 Cloud Run: "Failed to start and then listen on the port defined by the PORT environment variable." When I use 8080

4. 推送 Docker 镜像

在上一步构建好 Docker 镜像后,执行以下命令推送 Docker 镜像到 Artifact Registry:

docker push gcr.io/your-project-id/your-repo-name/your-image-name:your-tag

5. 部署 Docker 应用

Could Run 中点击【Create Service】,开始创建服务:

选择镜像点击【SELECT】,在弹出的对话框中选择 Docker 仓库名称,再选择刚刚推送的镜像。

其他的按照需求填写即可,点击【Create】即可完成部署。

参考

@chen86860 chen86860 added the blog label Apr 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant