Мне нужно настроить пользовательский процесс сборки приложения GC AppEngine с помощью GC Cloud Build.
Прежде всего - у меня есть внутренний репозиторий Python на экземпляре GC ComputeEngine. Он доступен только через внутреннюю сеть, и я использую Remote-builder для запуска pip install
команды на внутреннем экземпляре GC.
После загрузки зависимостей из внутреннего репозитория необходимо развернуть результаты в GC AppEngine.
Cloudbuild.yaml :
steps:
/#Download dependencies from the internal repository
- name: gcr.io/${ProjectName}/remote-builder
env:
- COMMAND=sudo bash workspace/download-dependencies.bash
- ZONE=us-east1-b
- INSTANCE_NAME=remote-cloud-build
- INSTANCE_ARGS=--image-project centos-cloud --image-family centos-7
- name: gcr.io/cloud-builders/docker
args: ['build', '-t', 'gcr.io/${ProjectName}/app', '.']
- name: gcr.io/cloud-builders/docker
args: ['push', 'gcr.io/${ProjectName}/app']
- name: gcr.io/cloud-builders/gcloud
args: ['app', 'deploy', 'app.yaml', '--image-url=gcr.io/${ProjectName}/${ProjectName}']
images: ['gcr.io/${ProjectName}/${ProjectName}']
app.yaml:
runtime: python
env: flex
entrypoint: python main.py
service: service-name
runtime_config:
python_version: 3
Dockerfile:
FROM gcr.io/google-appengine/python
WORKDIR /app
COPY . /app
скачать-dependencies.bash:
#!/usr/bin/env bash
easy_install pip
pip install --upgrade pip
pip install --upgrade setuptools
pip install -r workspace/requirements.txt'
После запуска gcloud builds submit --config cloudbuild.yaml
новая версия приложения развернута в AppEngine, но она не работает
Может, проблема в неправильном изображении? Насколько я понимаю, мне нужно настроить Dockefile для сбора всех пользовательских зависимостей Python в образ.
Не могли бы вы помочь мне с этим
Заранее спасибо!
Обновление
Я изменил свой Dockerfile в соответствии с руководством Google:
FROM gcr.io/google-appengine/python
RUN virtualenv /env
ENV VIRTUAL_ENV /env
ENV PATH /env/bin:$PATH
ADD . /app
CMD main.py
И новая ошибка: /bin/sh: 1: main.py: not found
Если я изменю последнюю строку на: CMD app/main.py
- она создает версию и не работает