Google Cloud Builder для угловых сбоев во время установки узла SASS с использованием образа сообщества Cloud Builders

# #node.js #angular #docker #google-cloud-build

Вопрос:

Шаги, которые я сделал до сих пор:

  • Я создал Google Cloud Repository
  • Я создал Cloud Build Trigger и связал его со своей учетной записью GitHub и репозиторием и точно сопоставил название филиала ^staging$

И теперь в соответствии с руководством я пытаюсь инициализировать угловой конструктор со следующим кодом:

 git clone https://github.com/GoogleCloudPlatform/cloud-builders-community
cd cloud-builders-community/ng
gcloud builds submit --config cloudbuild.yaml .  **** ERROR HERE ****
gcloud container images list --filter ng
 

Когда я пытаюсь отправить новый конструктор, я получаю сообщение об ошибке инициализации узла-sass. Теперь GCC не скупится на ошибки сборки, но я сжал это здесь, так как не верю, что все это имеет отношение к делу.

 BUILD
Starting Step #0
Step #0: Already have image (with digest): gcr.io/cloud-builders/docker
Step #0: Sending build context to Docker daemon  8.704kB
Step #0: Step 1/4 : FROM node:current
Step #0: current: Pulling from library/node
Step #0: Digest: sha256:a1118930ecc77da1ce4b19ac8c17adf386b7bb36b348111437f1cfca5a5c9fd7
Step #0: Status: Downloaded newer image for node:current
Step #0:  ---> 9c23a8242f8b
Step #0: Step 2/4 : ARG ng_version=latest
Step #0:  ---> Running in 8571f9c93b72
Step #0: Removing intermediate container 8571f9c93b72
Step #0:  ---> ae862a663d5c
Step #0: Step 3/4 : RUN npm install -g @angular/cli@$ng_version --unsafe-perms amp;amp;     ng version
Step #0:  ---> Running in 8b6eabc3c04e
...
...
lots of npm install deprecated warnings
...
...
Step #0: npm ERR! code 1
Step #0: npm ERR! path /usr/local/lib/node_modules/@angular/cli/node_modules/node-sass
Step #0: npm ERR! command failed
Step #0: npm ERR! command sh -c node scripts/build.js
Step #0: npm ERR! Building: /usr/local/bin/node /usr/local/lib/node_modules/@angular/cli/node_modules/node-gyp/bin/node-gyp.js rebuild --verbose --libsass_ext= --libsass_cflags= --libsass_ldflags= --libsass_library=
Step #0: npm ERR! make: Entering directory '/usr/local/lib/node_modules/@angular/cli/node_modules/node-sass/build'
Step #0: npm ERR!   g   '-DNODE_GYP_MODULE_NAME=libsass' '-DUSING_UV_SHARED=1' '-DUSING_V8_SHARED=1' '-DV8_DEPRECATION_WARNINGS=1' '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-D__STDC_FORMAT_MACROS' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DLIBSASS_VERSION="3.5.5"' -I/root/.node-gyp/16.10.0/include/node -I/root/.node-gyp/16.10.0/src -I/root/.node-gyp/16.10.0/deps/openssl/config -I/root/.node-gyp/16.10.0/deps/openssl/openssl/include -I/root/.node-gyp/16.10.0/deps/uv/include -I/root/.node-gyp/16.10.0/deps/zlib -I/root/.node-gyp/16.10.0/deps/v8/include -I../src/libsass/include  -fPIC -pthread -Wall -Wextra -Wno-unused-parameter -m64 -O3 -fno-omit-frame-pointer -std=gnu  14 -std=c  0x -fexceptions -frtti -MMD -MF ./Release/.deps/Release/obj.target/libsass/src/libsass/src/ast.o.d.raw   -c -o Release/obj.target/libsass/src/libsass/src/ast.o ../src/libsass/src/ast.cpp
...
...
a lot more GCC make errors
...
...
Step #0: npm ERR! make: *** [binding.target.mk:133: Release/obj.target/binding/src/binding.o] Error 1
Step #0: npm ERR! gyp ERR! build error 
Step #0: npm ERR! gyp ERR! stack Error: `make` failed with exit code: 2
Step #0: npm ERR! gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/@angular/cli/node_modules/node-gyp/lib/build.js:262:23)
Step #0: npm ERR! gyp ERR! stack     at ChildProcess.emit (node:events:390:28)
Step #0: npm ERR! gyp ERR! stack     at Process.ChildProcess._handle.onexit (node:internal/child_process:290:12)
Step #0: npm ERR! gyp ERR! System Linux 5.4.0-1052-gcp
Step #0: npm ERR! gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/@angular/cli/node_modules/node-gyp/bin/node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
Step #0: npm ERR! gyp ERR! cwd /usr/local/lib/node_modules/@angular/cli/node_modules/node-sass
Step #0: npm ERR! gyp ERR! node -v v16.10.0
Step #0: npm ERR! gyp ERR! node-gyp -v v3.8.0
Step #0: npm ERR! gyp ERR! not ok 
Step #0: npm ERR! Build failed with error code: 1
Step #0: 
Step #0: npm ERR! A complete log of this run can be found in:
Step #0: npm ERR!     /root/.npm/_logs/2021-10-05T13_37_53_770Z-debug.log
Step #0: The command '/bin/sh -c npm install -g @angular/cli@$ng_version --unsafe-perms amp;amp;     ng version' returned a non-zero code: 1
Finished Step #0
ERROR
ERROR: build step 0 "gcr.io/cloud-builders/docker" failed: step exited with non-zero status: 1
Step #0: 
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ERROR: (gcloud.builds.submit) build c9c6d17a-e87f-449a-9901-44b786e8dd39 completed with status "FAILURE"
 

Я довольно новичок в angular и очень новичок в облачном строительстве, поэтому не знаю точно, что делать дальше. Если бы мне пришлось предположить, что предварительно настроенный образ сборки имеет несовместимость между версией узла и версией node-sass — по крайней мере, я видел, что именно это вызывало подобные проблемы в прошлом локально. Но поскольку это удаленное изображение, я чувствую, что оно должно быть в известном хорошем состоянии.

Комментарии:

1. Вы пробовали использовать yarn вместо npm в своем . файл yaml?

2. после целого дня попыток понять, как выполнять автоматические сборки, я получил это руководство shashankvivek-7.medium.com/… который просто использует общий npm образ. К сожалению, у меня нет никакого yarn опыта, поэтому я не хотел идти по этому пути.

Ответ №1:

Публикация @anon58192932 решение для наглядности:

Вы можете следовать этому руководству по носителю, в котором используется общее npm изображение.

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']
 

Комментарии:

1. спасибо, Фарид. правильно, что npm следует использовать стандартные изображения Google, и именно так работает мое текущее решение и создается angular.

2. Привет @anon58192932. Подумайте о том, чтобы принять ответ, если он решит вашу проблему.

3. мне пришлось внести некоторые небольшие правки в его ответ, но сейчас он выглядит хорошо!