У меня есть Django backend и Angular Frontend , и я пытаюсь развернуть их оба в приложении Google App Engine Standard как две службы в том же приложении.
Каталог выглядит так:
-backend
--cloudbuild.yaml
--app.yaml
-- ...
-frontend
--cloudbuild.yaml
--app.yaml
-- ...
-cloudbuild.yaml
Основной cloudbuild.yaml
проходит через каждую папку, ищет файл cloudbuild.yaml
и отправляет сборку:
steps:
- name: 'gcr.io/cloud-builders/gcloud'
entrypoint: 'bash'
args:
- '-c'
- |
for d in */; do
config="${d}cloudbuild.yaml"
if [[ ! -f "${config}" ]]; then
continue
fi
echo "Building $d ... "
(
gcloud builds submit $d --config=${config}
) &
done
wait
Когда я отправляю код в репозиторий Github, они успешно развертываются . Тем не менее, оба журнала показывают что-то вроде ниже:
Step #2: Beginning deployment of service [default]...
Step #2: #============================================================#
Step #2: #= Uploading 0 files to Google Cloud Storage =#
Step #2: #============================================================#
Step #2: File upload done.
Step #2: Updating service [default]...
Step #2: ................................done.
Step #2: Setting traffic split for service [default]...
Step #2: .....done.
Step #2: Deployed service [default] to [https://thisapp.appspot.com]
Так что кажется, что один переопределяет другой в качестве службы по умолчанию. Когда я захожу на страницу услуг, есть только одна служба, которая является службой по умолчанию.
Я знаю, что сначала мы должны развернуть службу по умолчанию, а затем остальные. Однако я подумал, что поскольку основной cloudbuild.yaml
отправляет сборку один за другим, тогда будет служба по умолчанию, а вторая сборка создаст вторую службу.
Два других файла cloudbuild.yaml
указаны ниже:
steps:
# Install node packages
- name: 'gcr.io/cloud-builders/npm'
args: [ 'install' ]
# Build productive files
- name: 'gcr.io/cloud-builders/npm'
args: [ 'run', 'build', '--prod']
# Deploy to google cloud app egnine
- name: 'gcr.io/cloud-builders/gcloud'
args: ['app', 'deploy', '--version=prod']
steps:
- name: 'python:3.7'
entrypoint: python3
args: ['-m', 'pip', 'install', '-t', '.', '-r', 'requirements.txt']
- name: 'python:3.7'
entrypoint: python3
args: ['./manage.py', 'collectstatic', '--noinput']
- name: 'gcr.io/cloud-builders/gcloud'
args: ['app', 'deploy', '--version=prod']
Буду признателен, если вы поможете мне в этом.
Спасибо