Использование пакета python в Google Build - PullRequest
1 голос
/ 14 июня 2019

В моем requirements.txt я пытаюсь загрузить python-ldap==3.2.0. Однако мне нужно эти зависимости . Как мне загрузить их с помощью Google Build? Я попробовал следующее, но получил ошибки:

Step #0 - "Dependency install": E: Unable to locate package libsasl2-dev
Step #0 - "Dependency install": E: Unable to locate package python-dev
Step #0 - "Dependency install": E: Unable to locate package libldap2-dev
Step #0 - "Dependency install": E: Unable to locate package libssl-dev
Step #0 - "Dependency install": Building dependency tree...
Step #0 - "Dependency install": Reading state information...
Finished Step #0 - "Dependency install"
2019/06/14 12:51:21 Step Step #0 - "Dependency install" finished
2019/06/14 12:51:21 status changed to "ERROR"
ERROR
ERROR: build step 0 "ubuntu" failed: exit status 100
2019/06/14 12:51:21 Error updating docker credentials: failed to update docker credentials: signal: killed
2019/06/14 12:51:21 Failed to delete homevol: exit status 1
2019/06/14 12:51:24 Build finished with ERROR status

cloudbuild.yaml

steps:
# Install Dependencies
- name: 'ubuntu'
  id: Dependency install
  args: ['apt-get', 'install',
         'libsasl2-dev', 'python-dev', 'libldap2-dev', 'libssl-dev']
# Install Python Dependencies
- name: 'python'
  id: Pip install
  args: ['pip3', 'install', '-r', 'requirements.txt', '--user']

Тогда я попробовал

- name: 'ubuntu'
  id: Dependency install
  args: ['apt-get', 'update', '&&', 'apt-get', 'install',
         'libsasl2-dev', 'python-dev', 'libldap2-dev', 'libssl-dev']

Но и это не удалось.

1 Ответ

1 голос
/ 17 июня 2019

Google Cloud Functions получает только ваш исходный код и файл requirements.txt, чтобы указать, какие зависимости Python он использует.
Менеджер GCF внутренне и автоматически устанавливает эти зависимости в среде Python, которая будет выполнять вашу функцию, вы устанавливаете системные библиотеки в среду GCF, но вы можете использовать те, которые доступны ( здесь список ). Необходимая вам библиотека libldap2 недоступна. Таким образом, вы можете открыть вопрос на их трекере, чтобы попросить его.

Теперь, хотя это не поможет, ошибка в GC Build возникает из-за того, что только рабочее пространство (начальный рабочий каталог и все, что внутри него) распределяется между шагами. Каждый шаг запускает док-контейнер с изображением, указанным в параметре name, и с подключенным рабочим пространством.
Более очевидной демонстрацией того, что системные изменения не являются общими, является использование Ubuntu на одном этапе, CentOS на другом и Alpine на другом. Системные библиотеки для каждого из них очень разные, поэтому они явно не являются общими.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...