在开发期间,您可以在部署前先在本地运行和测试容器映像。您可以使用 Cloud Code 或本地安装的 Docker 在本地运行和测试,包括在本地运行且可以访问 Google Cloud 服务。
在 Knative 服务模拟器中运行
借助适用于 VS Code 的 Cloud Code 插件和 JetBrains IDE,您可以在 IDE 内的 Knative 服务模拟器中本地运行和调试容器映像。使用模拟器,您可以配置一个环境来代表在 Knative 服务上运行的服务。
您可以配置 CPU 和内存分配等属性、指定环境变量,以及设置 Cloud SQL 数据库连接。
- 安装 Cloud Code for VS Code 或 JetBrains IDE。
- 按照在 IDE 中进行本地开发和调试的说明进行操作。
使用 Docker 在本地运行
要使用 Docker 在本地测试容器映像,请执行以下操作:
使用 Docker 命令:
PORT=8080 && docker run -p 9090:${PORT} -e PORT=${PORT} IMAGE_URL
将 IMAGE_URL 替换为对容器映像的引用,例如
gcr.io/cloudrun/hello
。PORT
环境变量指定应用将用于侦听 HTTP 或 HTTPS 请求的端口。这是容器运行时合同中的一项要求。在此示例中,我们使用的端口是 8080。通过浏览器打开 http://localhost:9090。
如果您初次使用容器,可能需要查看 Docker 使用入门指南。如需详细了解 Docker 命令,请参阅 Docker 文档。
使用可访问 Google Cloud 服务的 Docker 在本地运行
如果您使用 Google Cloud 客户端库将应用与 Google Cloud 服务集成,但尚未保护这些服务以控制外部访问,您可以将本地容器设置为使用应用默认凭据向 Google Cloud 服务进行身份验证。
要在本地运行:
如需了解如何生成、检索和配置服务账号凭据,请参阅身份验证使用入门。
以下 Docker 运行标志会将本地系统中的凭据和配置注入本地容器:
- 使用
--volume
(-v
) 标志将凭据文件注入容器(假定您已在机器上设置GOOGLE_APPLICATION_CREDENTIALS
环境变量):-v $GOOGLE_APPLICATION_CREDENTIALS:/tmp/keys/FILE_NAME.json:ro
- 使用
--environment
(-e
) 标志在容器内设置GOOGLE_APPLICATION_CREDENTIALS
变量:-e GOOGLE_APPLICATION_CREDENTIALS=/tmp/keys/FILE_NAME.json
- 使用
(可选)使用以下完全配置的 Docker
run
命令:PORT=8080 && docker run \ -p 9090:${PORT} \ -e PORT=${PORT} \ -e K_SERVICE=dev \ -e K_CONFIGURATION=dev \ -e K_REVISION=dev-00001 \ -e GOOGLE_APPLICATION_CREDENTIALS=/tmp/keys/FILE_NAME.json \ -v $GOOGLE_APPLICATION_CREDENTIALS:/tmp/keys/FILE_NAME.json:ro \ IMAGE_URL
请注意,
/tmp/keys/FILE_NAME.json
上例中所示是将凭据放入容器的合理位置。但是,您也可以选择其他目录位置。但有一项重要要求:
GOOGLE_APPLICATION_CREDENTIALS
环境变量必须与容器中的绑定装载位置匹配。另请注意,对于某些 Google Cloud 服务,您可能需要使用备用配置将本地问题排查与生产性能和数据隔离开来。
后续步骤
如需了解如何部署已构建的容器,请按照部署服务部分中的说明进行操作。