Есть ли способ установить интерфейс командной строки Firebase в образе python base docker? - PullRequest
0 голосов
/ 14 января 2020

Я создаю python docker образ, и мне нужно использовать CLI firebase (доступ к которому осуществляется с помощью команд 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 изображение.

Ответы [ 2 ]

0 голосов
/ 15 января 2020

Хорошо, нашел решение, которое работает. Просто установите узел на образ python, а затем используйте npm для установки firebase-CLI.

Dockerfile:

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

И теперь я могу запускать команды firebase из python !

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

Более подробную информацию об использовании интерфейса командной строки Firebase с непрерывной интеграцией можно найти здесь .

0 голосов
/ 14 января 2020

Попробуйте установить 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

...