Как развернуть приложение Vue.js с env vars в Google Cloud Build? - PullRequest
0 голосов
/ 28 июня 2019

Я хочу развернуть приложение Vue.js с облачной сборкой Google (для Firebase Hosting).Даже если это довольно тривиальное использование двух продуктов, реализация двух сервисов для переменных среды кажется противоречивой.

В Google Cloud Build требуется, чтобы переменные среды начинались с префикса "VUE_APP", в противном случае он полностью игнорирует их иих содержание не определено.С другой стороны, облачная сборка Google требует, чтобы переменные имели префикс «_», в противном случае переменная подстановки не является «допустимой встроенной подстановкой».Поэтому я не вижу возможности передать переменные из Google Cloud Build в приложение Vue.js.

Я также попробовал следующее:

- name: 'gcr.io/cloud-builders/npm'
  args: [ 'ci', '--prefix', 'web/vue_js_landing/' ]
  env: [ 'VUE_APP_FIREBASE_WEB_API_KEY=${_FIREBASE_WEB_API_KEY}' ]

Но он добавляет ключшаблон "VUE_APP_FIREBASE_WEB_API_KEY" не является допустимой встроенной заменой '

Кто-нибудь знает об обходном пути для этой ситуации?

Исправление:

Этовопрос вводил в заблуждение.Код выше отвечает на мой вопрос.Там также опечатка.Это должны были быть "args: ['build', '--prefix', 'web / vue_js_landing /']".Ошибка, о которой я упоминал, если кто-то еще наткнулся на это, это было вызвано тем, что я сделал «echo $ VUE_APP_FIREBASE_WEB_API_KEY» в какой-то другой точке моей конфигурации, и это может быть потому, что флаг ALLOW_LOOSE не был установлен.

1 Ответ

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

Это весь ваш конфиг сборки?Пожалуйста, пишите, если у вас есть больше

Я не уверен, как префикс VUE_APP требуется в вашем контексте, но вы можете устанавливать замены и env-переменные без этого префикса регулярно.

Подстановки должны префикс _ заменяться во время сборки, но не находятся в env на этапе сборки.Варианты env не нуждаются в дополнительном префиксе, но должны вызываться с $$.

Как вы передаете ключ веб-API?Вот пример прохождения через cli gcloud builds submit --no-source --substitutions _SECRET_KEY='123'

cloudbuild.yaml

steps:
- name: 'gcr.io/cloud-builders/npm'
  entrypoint: 'bash'
  args: ['-c', 'echo $$FIREBASE_WEB_API_KEY']
  env: ['FIREBASE_WEB_API_KEY=${_SECRET_KEY}']

Вот еще один пример, показывающий как подстановки, так и переменные env.Вы можете работать с gcloud builds submit --no-source, если хотите поиграть с ним.

cloudbuild.yaml

steps:
- id: 'breakout syntax'
  name: 'gcr.io/cloud-builders/npm'
  entrypoint: 'bash'
  args:
   - '-c'
   - |
     echo 'print all env vars'
     env
     echo 'print one env var with $$'
     echo '1: '$$BUILD_ENV_VAR
     echo '2: '$$STEP_ENV_VAR
     echo '3: '$$SUB_IN_ENV_VAR
     echo 'print one substitution with $ or ${}'
     echo '1: '${_SUB_VAR}
     echo '2: ' $$_SUB_VAR ## doesn't exist in env, fails
     echo '3: '$_SUB_VAR
  env: ['STEP_ENV_VAR=step-var']

substitutions:
    _SUB_VAR: sub-var
options:
    env:
     - BUILD_ENV_VAR=env-var
     - SUB_IN_ENV_VAR=env-var-with-${_SUB_VAR}

source: Документация по созданию облака: subs , документация по созданию облака: этапы сборки , освоение синтаксиса построения облака (bash вещи)

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