
tungbeier/gcloud-pubsub-emulator本仓库包含Google PubSub模拟器的Docker配置,主要是prep/pubsubc的容器化和文档。它是marcelcorso/gcloud-pubsub-emulator的分支版本,更新了gcloud、OpenJDK和eficode/wait-for的版本。源代码可在此Github仓库中找到。
latest:基于master分支最新提交构建的镜像\d+.\d+.\d+:对应特定gcloud版本的构建运行此镜像:
shelldocker run -d -p 8681:8681 -e PUBSUB_PROJECT1=test-project,test-topic tungbeier/gcloud-pubsub-emulator:latest
首先创建docker-compose.yaml文件:
yaml--- services: pubsub-emulator: image: tungbeier/gcloud-pubsub-emulator:latest container_name: pubsub-emulator expose: - "8682" ports: - "8681:8681" environment: - PUBSUB_PROJECT1=test-project,test-topic:test-subscription # 验证模拟器是否运行 wait-for: image: eficode/wait-for:latest container_name: wait-for command: ["pubsub-emulator:8682", "--", "echo", "pubsub emulator is running"] depends_on: - pubsub-emulator
然后运行:
shelldocker-compose up -d
容器启动后,运行应用前需设置PUBSUB_EMULATOR_HOST环境变量,可通过以下方式:
shellexport PUBSUB_EMULATOR_HOST=localhost:8681 ./my-pubsub-app
或直接在运行应用时指定环境变量:
shellenv PUBSUB_EMULATOR_HOST=localhost:8681 ./my-pubsub-app
若需要,可通过启动容器时设置环境变量EMULATOR_PORT(默认:8681)和EMULATOR_READY_PORT(默认:8682)来分别更改模拟器端口和就绪端口。
此镜像支持在启动时创建项目中的主题和订阅,通过指定带序号的PUBSUB_PROJECT环境变量(从1开始依次追加序号)实现。环境变量格式如下:
txtPUBSUB_PROJECT1=PROJECT_1,TOPIC_1,TOPIC_2:SUBSCRIPTION_1:SUBSCRIPTION_2,TOPIC_3:SUBSCRIPTION_3 PUBSUB_PROJECT2=PROJECT_2,TOPIC_4
格式说明:逗号分隔的列表,第一项为项目ID,其余为主题;主题内部用冒号分隔,第一项为主题ID,其余为订阅ID。主题可不指定订阅,创建的订阅为拉取订阅。
注意:至少需要提供PUBSUB_PROJECT1,且包含项目ID和至少一个主题。
示例:项目ID为company-dev,包含主题invoices(订阅invoice-calculator)、chats(订阅slack-out和irc-out)和notifications(无订阅),定义如下:
txtPUBSUB_PROJECT1=company-dev,invoices:invoice-calculator,chats:slack-out:irc-out,notifications
完整命令:
shelldocker run -d \ -p 8681:8681 \ -e PUBSUB_PROJECT1=company-dev,invoices:invoice-calculator,chats:slack-out:irc-out,notifications \ tungbeier/gcloud-pubsub-emulator:latest
如需定义多个项目,可添加PUBSUB_PROJECT2、PUBSUB_PROJECT3等。
容器启动后,模拟器端口(默认8681)会先开放。创建完所有指定的项目、主题和订阅后,就绪端口(默认8682)会开放。在docker-compose等场景中,可使用wait-for或wait-for-it等脚本检测就绪端口,确保依赖服务在PubSub模拟器完全就绪后启动。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务