首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以从云构建步骤启动PubSub仿真程序?

是否可以从云构建步骤启动PubSub仿真程序?
EN

Stack Overflow用户
提问于 2020-09-03 10:09:09
回答 2查看 789关注 0票数 0

正如标题所提到的,我想知道,从云构建步骤,我是否可以启动和使用pubsub仿真器?

代码语言:javascript
复制
options:
  env:
    - GO111MODULE=on
    - GOPROXY=https://proxy.golang.org
    - PUBSUB_EMULATOR_HOST=localhost:8085
  volumes:
    - name: "go-modules"
      path: "/go"

steps:
  - name: "golang:1.14"
    args: ["go", "build", "."]

  # Starts the cloud pubsub emulator
  - name: 'gcr.io/cloud-builders/gcloud'
    entrypoint: 'bash'
    args: [
      '-c',
      'gcloud beta emulators pubsub start --host-port 0.0.0.0:8085 &'
    ]

  - name: "golang:1.14"
    args: ["go", "test", "./..."]

对于我需要的测试,它在本地工作,而不是使用来自云构建的专用发布子,我想使用一个仿真器。

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-09-08 11:32:45

当我找到一个解决方案和一个有趣的git存储库时,我想和您分享这个解决方案。

根据需要,您需要一个cloud-build.yaml,并且希望添加一个步骤,以便启动模拟器:

代码语言:javascript
复制
options:
  env:
    - GO111MODULE=on
    - GOPROXY=https://proxy.golang.org
    - PUBSUB_EMULATOR_HOST=localhost:8085
  volumes:
    - name: "go-modules"
      path: "/go"

steps:
  - name: "golang:1.14"
    args: ["go", "build", "."]

  - name: 'docker/compose'
    args: [
        '-f',
        'docker-compose.cloud-build.yml',
        'up',
        '--build',
        '-d'
    ]
    id: 'pubsub-emulator-docker-compose'

  - name: "golang:1.14"
    args: ["go", "test", "./..."]

如您所见,我运行了一个命令,它将实际启动模拟器。

代码语言:javascript
复制
version: "3.7"

services:
  pubsub:
    # Required for cloudbuild network access (when external access is required)
    container_name: pubsub
    image: google/cloud-sdk
    ports:
      - '8085:8085'
    command: ["gcloud", "beta", "emulators", "pubsub", "start", "--host-port", "0.0.0.0:8085"]
    network_mode: cloudbuild

networks:
  default:
    external:
      name: cloudbuild

设置容器名称和网络非常重要,否则您将无法从另一个云构建步骤访问pubsub仿真器。

票数 3
EN

Stack Overflow用户

发布于 2020-09-03 17:01:35

因为Cloud上的每一步都是在docker容器中执行的,所以这是可能的,但是映像gcr.io/cloud-builders/gcloud在启动模拟器之前只安装了最少的gcloud组件,您需要通过gcloud命令安装pubsub仿真器。

代码语言:javascript
复制
gcloud components install pubsub-emulator

另外,安装Open也是必要的,因为大多数JDK7模拟器都需要java来操作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63721400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档