Вы можете добавить шаг в свой Cloud Build. Я не знаю, как вы выполняете свой тест, но вот пример для запуска вашего скрипта в python3 .7 контексте
- name: 'python:3.7'
entrypoint: 'bash'
args:
- '-c'
- |
run the python script that you want
pip install and others.
Обновление
Добавить этот шаг перед вашей функцией развертывания. Если шаг завершился неудачно (код выхода, отличный от 0), процесс построения облака остановился и развертывание не было выполнено.
Обновление 2
Концепция Cloud Build заключается в следующем. достаточно просто. Вы загружаете контейнер (представлен в name
). В контейнере только том /workspace
прикреплен и сохраняется от одного шага к следующему.
Эта концепция очень важна. Если вы установили переменную окружения или другое за один шаг, шаг после потеряет этот контекст. Сохраняется только файл /workspace
. Следующий шаг - вызов только в том случае, если текущий финиш sh правильно (код выхода = 0).
Когда загружен контейнер, запускается команда. Если вы используете cloud Builder , точка входа по умолчанию вызывается по умолчанию (например, gcloud Cloud Builder автоматически запускает команду gcloud). Затем вам нужно только добавить массив args для отправки в эту точку входа. Пример
- name: 'gcr.io/cloud-builders/gcloud'
args:
- functions
- list
Эта команда представляет gcloud functions list
с gcloud
в качестве точки входа и functions
и list
в качестве аргументов.
Если ваш контейнер не имеет точки входа (например, python контейнер) или, если вы хотите переопределить точку входа, вы можете указать ее с помощью ключевого слова entrypoint
. В моем первом примере кода требуется несколько linux концепций. Точка входа bash. Аргумент -c
для выполнения команды. Канал |
, если разрешить ввод команды из нескольких команд (многострочный).
Если у вас есть только одна команда python для запуска, вы можете сделать так:
- name: 'python:3.7'
entrypoint: 'python3'
args:
- 'test_main.py'
- '.'
Но написанные вами шаги не сработают. Почему? go вернуться к началу моего объяснения: сохраняется только файл /workspace
. Если вы выполняете pip3 install
, файлы записываются не в каталог /workspace
, а в другое место в системе. Когда вы переключаете шаг, вы теряете этот системный контекст.
Вот почему полезна многострочная команда
- name: 'python:3.7'
entrypoint: 'bash'
args:
- '-c'
- |
pip3 install -r requirements.txt
python3 test_main.py .
Надеюсь, эта помощь!