GoogleCloudPlatform / GoogleCloudPlatform/functions-framework-nodejs

Build error when deploying from gcloud cli with local file dependencies

Ouverte
#591 3 commentaires 1 réaction 0 personnes assignées Voir sur GitHub
gcf bug P2
Langage dominant
TypeScript
Étoiles
1.4k
Forks
181
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

Deploying from local source with `gcloud functions deploy` seems unable to include local file dependencies.

When setting `--set-build-env-vars GOOGLE_VENDOR_NPM_DEPENDENCIES=true` and `package.json` is referencing something like `"app-common": "file:./localpath"` builds fail and throw the following build error:
```
"Step #2 - "build": panic: runtime error: invalid memory address or nil pointer dereference"
```

Was expecting this should work:
```
gcloud functions deploy my-function \
--entry-point=create \
--trigger-http \
--set-build-env-vars GOOGLE_VENDOR_NPM_DEPENDENCIES=true
```

But I was able to work around by building a docker image locally and manually pushing:

```
pack build \
--builder gcr.io/buildpacks/builder:v1 \
--env GOOGLE_FUNCTION_SIGNATURE_TYPE=http \
--env GOOGLE_FUNCTION_TARGET=create \
--env GOOGLE_VENDOR_NPM_DEPENDENCIES=true \
my-function
```

If I try the `gcloud functions deploy` command minus the build env var, it pushes an image to the cloud function that is missing dependencies. It would be great if this could deploy from local source in one step and have it correctly include dependencies, instead of manually having to build a docker image and push.

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez par reproduire l’échec avec un package.json contenant une dépendance de fichier local et la commande gcloud functions deploy indiquée, puis comparez-le avec l’invocation pack build qui fonctionne. Suivez le chemin de build pour GOOGLE_VENDOR_NPM_DEPENDENCIES=true et la dépendance locale, en utilisant le point d’entrée create. C’est terminé lorsque le déploiement depuis les sources locales réussit avec les dépendances incluses et que l’erreur de build due à un pointeur nil est couverte par un test de régression.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
docker, google-cloud, nodejs
Domaine
backend, build-system, cli, cloud
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.