有没有办法在 python 基础 docker 映像中安装 Firebase CLI?

Is there a way to install the Firebase CLI in a python base docker image?

我正在构建一个 python docker 图像,我需要在我的应用程序中使用 firebase CLI(通过 os.system 命令访问)。我正在尝试通过 运行 在 docker 文件中安装它:

FROM python:3.6.8

RUN curl -sL https://firebase.tools | bash

docker build -t my_image/firebase 获取此输出:

Sending build context to Docker daemon  2.048kB
Step 1/2 : FROM python:3.6.8
 ---> 48c06762acf0
Step 2/2 : RUN curl -sL https://firebase.tools | bash
 ---> Running in 11536da1cdb4
-- Checking for existing firebase-tools on PATH...
-- Checking your machine type...
-- Links...
[Binary URL] https://firebase.tools/bin/linux/latest
-- Downloading binary...
bash: line 148: sudo: command not found
-- Setting permissions on binary...
bash: line 154: sudo: command not found
bash: line 163: firebase: command not found
Something went wrong, firebase has not been installed.
Please file a bug with your system information on Github.
https://github.com/firebase/firebase-tools/
-- All done!
The command '/bin/sh -c curl -sL https://firebase.tools | bash' returned a non-zero code: 1

如果有任何有关如何执行此操作的提示,我们将不胜感激。使用 RUN npm install -g firebase-tools 不是一个选项,因为我是在 python 图像上构建的。

尝试安装 sudo 并在使用前向用户(此处 "admin")授予 sudo 权限:

FROM python:3.6.8
RUN apt-get update && apt-get install -y sudo
RUN useradd admin && echo "admin:admin" | chpasswd && adduser admin sudo
USER admin
RUN curl -sL https://firebase.tools | bash

改编自https://askubuntu.com/questions/906230/run-sudo-command-with-non-root-user-in-docker-container/1168971

好的,找到了有效的解决方案。只需在 python 图像上安装节点,然后使用 npm 安装 firebase-CLI。

Docker 文件:

FROM python:3.6.8

RUN curl -sL https://deb.nodesource.com/setup_10.x | bash - \
    && apt-get install -y nodejs

RUN npm install -g firebase-tools

现在我可以 运行 来自 python!

的 firebase 命令
import os
command = 'firebase projects:list --token CI_TOKEN'
os.system(command)

可以找到有关将 firebase CLI 与持续集成结合使用的更多信息here