【问题标题】:Which docker image contains CLIs for both firebase and gcloud?哪个 docker 映像包含适用于 firebase 和 gcloud 的 CLI?
【发布时间】:2021-08-03 08:26:08
【问题描述】:

我的 .gitlab-ci.yml 不仅需要调用gcloud cli,还需要调用firebase cli

image: google/cloud-sdk:latest 允许我调用gcloud cli,但不能调用firebase cli

image: devillex/docker-firebase 允许我调用firebase cli,但不能调用gcloud cli

我已尝试按照firebase's CI/CD instructions 安装firebase CLI,但我收到一个关于似乎需要sudo 的权限的错误。然而,gitlab 甚至不提供sudo,这并不奇怪。

我已尝试搜索 stackoverflow 和 hub.docker.com,但找不到同时提供这两种 CLI 的图像。你知道有哪一个可以同时提供吗?

是否有其他地方我可以搜索或以某种方式进行不同的搜索(例如,某些关键字有助于搜索 docker 图像)?

如果我想尝试将image: google/cloud-sdk:latestimage: devillex/docker-firebase 组合成一张图片,我会怎么做?第一步是什么?我从来没有制作过 Docker 镜像,更不用说尝试合并两个现有的了。

【问题讨论】:

  • 您无法合并两个图像。通常最好的办法是选择其中一个映像,确定它基于哪个 Linux 发行版,然后使用包管理器(apk 用于 Alpine,或apt-get 用于 Debian/Ubuntu)安装其他组件.
  • 有一个 Cloud Build(Google 服务)社区开发的(!)构建器,其中包括 Firebase CLI(不是 Cloud SDK)。因为它是社区开发的解决方案,并且因为它是开源的,所以您可以确信它是一个好的图像,并且您可以验证它的作用。小心使用任意容器。链接:cloud.google.com/build/docs/deploying-builds/…
  • 您可以为 Gitlab 构建一个脚本,该脚本使用两个不同的图像(Cloud SDK 和 Firebase),而无需将它们合并为一个。如果您可以按原样使用现有图像,您还可以避免创建和维护自己的图像。
  • 感谢@DazWilkin(为 Gitlab 构建一个使用两个不同图像的脚本)实际上是我作为解决方法所做的。它运作良好,但我很想简化它。
  • @DavidMaze 我可以尝试使用image: google/cloud-sdk:alpine,它可能基于 Alpine。然后我可以使用apk,对吗?但是是否有apk 注册表我可以搜索安装firebase CLI 的命令? firebase.google.com/docs/cli#mac-linux-auto-script 有一些非 apk 指令,但它们在 gitlab 上不起作用。他们失败了,因为他们需要 sudo 但 sudo 在 gitlab 上是不允许的。

标签: firebase docker gitlab-ci gcloud


【解决方案1】:

您可以将您的 docker 镜像基于 google/cloud-sdk:alpine,然后安装 npm 并使用它来安装 firebase 工具:

FROM google/cloud-sdk:alpine AS base

RUN apk add --update npm
RUN npm install -g firebase-tools

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-02
    • 1970-01-01
    • 2022-11-02
    • 1970-01-01
    • 2017-12-24
    • 1970-01-01
    • 1970-01-01
    • 2019-05-18
    相关资源
    最近更新 更多