Google Cloud Build - comment faire un build/déployer pour Firebase avec une dynamique conteneur qui "ralentit" à 0 (comme le cloud exécuter)

Nous avons la plupart, mais pas tous nos artefacts dans un repo Git (Bitbucket).

Notre version actuelle ressemble à ça, et prend plus de 30 minutes pour construire et déployer de Firebase, nous aimerions réduire le temps de construire.

Nous ne sommes pas à l'aide de Google Cloud Build pour le moment, mais avant de se diriger dans cette voie, je veux savoir si cela allait être fécondes.

Nous avons tous le code cloné à partir de la repo git (Bitbucket), d'un GCE VM.

Et puis 1 to de données statiques est ensuite copié dans un répertoire sous le repo git zone, des artefacts qui sont nécessaires pour la déployer.

Nous ne voulons pas de l'enregistrement 1 to de données dans le repo git, c'est à partir du 3ème partie, il est rarement mis à jour, et serait trop lourd d'un répertoire de tirer dans des environnements de développement sur leur IDE, il est inutile de le faire.

Nous lançons un script de compilation sur le GCE VM pour générer le code, et de déployer de Firebase (script bash), il faut environ 30 minutes.

Nous voulons que les versions pour aller plus vite, et possible d'utiliser le cloud construire.

Avec ceci:

  1. un repo git
  2. les fichiers externes qui ont besoin de rester dans une dynamique conteneur, pas copié à chaque fois, en raison du temps qu'il faudrait

comment pouvons-nous créer une dynamique conteneur qui n'aurait besoin que d'un git update (pull origin master), puis à déclencher un build/déployer pour Firebase?

Nous voulons éviter la pénétration de la circulation à la Firebase déployer à l'aide extérieure construire des services où la de 1 to de données qui reste le même à chaque fois est envoyé à Firebase, où l'on sera facturé.

Cloud Exécuter les récipients ne sont pas dynamiques. GCE VM sont dynamiques, mais il faut garder en place et d'aller 24x7x365, de sorte que n'importe quel développeur n'importe où, peut exécuter une build, et qui peut prendre de 30 minutes seulement de tous les jours, et nous ne savons pas quand ce sera, donc, laissant 24x7x365 est surtout le gaspillage.

Nous voulons éviter la construction d'un apatride en conteneur dans lequel le code est vérifié frais à chaque fois, un git pull origin master va faire, et d'avoir à copier le 1 to de des artefacts dans le récipient, et chaque fois en prenant le temps.

Nous voulons juste faire:

  1. git pull origin master
  2. Incendie à la construction comme à l'étape suivante dans le script
  3. la rotation du conteneur, il faut les sauver de l'état pour la prochaine génération, minimisant le temps, à chaque fois, l'enregistrement de la précédente "git pull origin master", mise à jour des artefacts, et la préservation de l'1 TO fichiers copiés dans le conteneur.

La situation idéale serait d'avoir un conteneur qui est dynamique, qui tourne vers le bas lorsque vous n'utilisez pas, et les "spins", ou est active pour une utilisation lorsque nous avons besoin de faire un build.

Il permettrait de conserver la précédente git update (git pull origin master), et de conserver tous les objets à l'extérieur du repo git que nous copier. Nous avons également besoin d'un accès shell à le conteneur (ssh, scp,...), etc.

Avec un état de "Cloud Run' option serait l'idéal, mais je ne connais pas de telle chose (stateful conteneurs aux BPC que nous pouvons exécuter et ne peuvent être facturés pour l'exécution/de temps de calcul)

+1
2019-09-17 08:22:11
source
0 réponses

Voir d'autres questions sur les étiquettes