Skip to content

Build of VSF fails for some people due to lack of dependencies in the container #3440

@michaelKurowski

Description

@michaelKurowski

Current behavior

VSF fails during yarn install for some people due to lack of python2, g++ and make.
The task falls on node-sass, due to the fact that it uses node-gyp underneath in order to compile some packages.

Expected behavior

yarn install should pass in the container

Steps to reproduce the issue

The issue is nondeterministic and affects only some people. It always happens during yarn install however

Repository

Core

Can you handle fixing this bug by yourself?

  • YES
  • NO

Which Release Cycle state this refers to? Info for developer.

Pick one option.

  • This is a bug report for test version on https://test.storefrontcloud.io - In this case Developer should create branch from develop branch and create Pull Request 2. Feature / Improvement back to develop.
  • This is a bug report for current Release Candidate version on https://next.storefrontcloud.io - In this case Developer should create branch from release branch and create Pull Request 3. Stabilisation fix back to release.
  • This is a bug report for current Stable version on https://demo.storefrontcloud.io and should be placed in next stable version hotfix - In this case Developer should create branch from hotfix or master branch and create Pull Request 4. Hotfix back to hotfix.

Environment details

  • Browser: N/A
  • OS: Confirmed for Ubuntu 18.04 and Windows 10
  • Node: Confirmed for: 8.16.10 and 10.16.0
  • Code Version: Confirmed for: Develop 1.9 - 1.10 and stable 1.9

Additional information

Logs of failing node-sass in case of python 2.7 issue:

frontend_1       | [5/5] Building fresh packages...
frontend_1       | error /var/www/node_modules/node-sass: Command failed.
frontend_1       | Exit code: 1
frontend_1       | Command: node scripts/build.js
frontend_1       | Arguments:
frontend_1       | Directory: /var/www/node_modules/node-sass
frontend_1       | Output:
frontend_1       | Building: /usr/local/bin/node /var/www/node_modules/node-gyp/bin/node-gyp.js rebuild --verbose --libsass_ext= --libsass_cflags= --libsass_ldflags= --libsass_library=
frontend_1       | gyp info it worked if it ends with ok
frontend_1       | gyp verb cli [ '/usr/local/bin/node',
frontend_1       | gyp verb cli   '/var/www/node_modules/node-gyp/bin/node-gyp.js',
frontend_1       | gyp verb cli   'rebuild',
frontend_1       | gyp verb cli   '--verbose',
frontend_1       | gyp verb cli   '--libsass_ext=',
frontend_1       | gyp verb cli   '--libsass_cflags=',
frontend_1       | gyp verb cli   '--libsass_ldflags=',
frontend_1       | gyp verb cli   '--libsass_library=' ]
frontend_1       | gyp info using node-gyp@3.8.0
frontend_1       | gyp info using node@8.16.0 | linux | x64
frontend_1       | gyp verb command rebuild []
frontend_1       | gyp verb command clean []
frontend_1       | gyp verb clean removing "build" directory
frontend_1       | gyp verb command configure []
frontend_1       | gyp verb check python checking for Python executable "python2" in the PATH
frontend_1       | gyp verb `which` failed Error: not found: python2
frontend_1       | gyp verb `which` failed     at getNotFoundError (/var/www/node_modules/which/which.js:13:12)
frontend_1       | gyp verb `which` failed     at F (/var/www/node_modules/which/which.js:68:19)
frontend_1       | gyp verb `which` failed     at E (/var/www/node_modules/which/which.js:80:29)
frontend_1       | gyp verb `which` failed     at /var/www/node_modules/which/which.js:89:16
frontend_1       | gyp verb `which` failed     at /var/www/node_modules/isexe/index.js:42:5
frontend_1       | gyp verb `which` failed     at /var/www/node_modules/isexe/mode.js:8:5
frontend_1       | gyp verb `which` failed     at FSReqWrap.oncomplete (fs.js:152:21)
frontend_1       | gyp verb `which` failed  python2 { Error: not found: python2
frontend_1       | gyp verb `which` failed     at getNotFoundError (/var/www/node_modules/which/which.js:13:12)
frontend_1       | gyp verb `which` failed     at F (/var/www/node_modules/which/which.js:68:19)
frontend_1       | gyp verb `which` failed     at E (/var/www/node_modules/which/which.js:80:29)
frontend_1       | gyp verb `which` failed     at /var/www/node_modules/which/which.js:89:16
frontend_1       | gyp verb `which` failed     at /var/www/node_modules/isexe/index.js:42:5
frontend_1       | gyp verb `which` failed     at /var/www/node_modules/isexe/mode.js:8:5
frontend_1       | gyp verb `which` failed     at FSReqWrap.oncomplete (fs.js:152:21)
frontend_1       | gyp verb `which` failed   stack: 'Error: not found: python2\n    at getNotFoundError (/var/www/node_modules/which/which.js:13:12)\n    at F (/var/www/node_modules/which/which.js:68:19)\n    at E (/var/www/node_modules/which/which.js:80:29)\n    at /var/www/node_modules/which/which.js:89:16\n    at /var/www/node_modules/isexe/index.js:42:5\n    at /var/www/node_modules/isexe/mode.js:8:5\n    at FSReqWrap.oncomplete (fs.js:152:21)',
frontend_1       | gyp verb `which` failed   code: 'ENOENT' }
frontend_1       | gyp verb check python checking for Python executable "python" in the PATH
frontend_1       | gyp verb `which` failed Error: not found: python
frontend_1       | gyp verb `which` failed     at getNotFoundError (/var/www/node_modules/which/which.js:13:12)
frontend_1       | gyp verb `which` failed     at F (/var/www/node_modules/which/which.js:68:19)
frontend_1       | gyp verb `which` failed     at E (/var/www/node_modules/which/which.js:80:29)
frontend_1       | gyp verb `which` failed     at /var/www/node_modules/which/which.js:89:16
frontend_1       | gyp verb `which` failed     at /var/www/node_modules/isexe/index.js:42:5
frontend_1       | gyp verb `which` failed     at /var/www/node_modules/isexe/mode.js:8:5
frontend_1       | gyp verb `which` failed     at FSReqWrap.oncomplete (fs.js:152:21)
frontend_1       | gyp verb `which` failed  python { Error: not found: python
frontend_1       | gyp verb `which` failed     at getNotFoundError (/var/www/node_modules/which/which.js:13:12)
frontend_1       | gyp verb `which` failed     at F (/var/www/node_modules/which/which.js:68:19)
frontend_1       | gyp verb `which` failed     at E (/var/www/node_modules/which/which.js:80:29)
frontend_1       | gyp verb `which` failed     at /var/www/node_modules/which/which.js:89:16
frontend_1       | gyp verb `which` failed     at /var/www/node_modules/isexe/index.js:42:5
frontend_1       | gyp verb `which` failed     at /var/www/node_modules/isexe/mode.js:8:5
frontend_1       | gyp verb `which` failed     at FSReqWrap.oncomplete (fs.js:152:21)
frontend_1       | gyp verb `which` failed   stack: 'Error: not found: python\n    at getNotFoundError (/var/www/node_modules/which/which.js:13:12)\n    at F (/var/www/node_modules/which/which.js:68:19)\n    at E (/var/www/node_modules/which/which.js:80:29)\n    at /var/www/node_modules/which/which.js:89:16\n    at /var/www/node_modules/isexe/index.js:42:5\n    at /var/www/node_modules/isexe/mode.js:8:5\n    at FSReqWrap.oncomplete (fs.js:152:21)',
frontend_1       | gyp verb `which` failed   code: 'ENOENT' }
frontend_1       | gyp ERR! configure error
frontend_1       | gyp ERR! stack Error: Can't find Python executable "python", you can set the PYTHON env variable.
frontend_1       | gyp ERR! stack     at PythonFinder.failNoPython (/var/www/node_modules/node-gyp/lib/configure.js:484:19)
frontend_1       | gyp ERR! stack     at PythonFinder.<anonymous> (/var/www/node_modules/node-gyp/lib/configure.js:406:16)
frontend_1       | gyp ERR! stack     at F (/var/www/node_modules/which/which.js:68:16)
frontend_1       | gyp ERR! stack     at E (/var/www/node_modules/which/which.js:80:29)
frontend_1       | gyp ERR! stack     at /var/www/node_modules/which/which.js:89:16
frontend_1       | gyp ERR! stack     at /var/www/node_modules/isexe/index.js:42:5
frontend_1       | gyp ERR! stack     at /var/www/node_modules/isexe/mode.js:8:5
frontend_1       | gyp ERR! stack     at FSReqWrap.oncomplete (fs.js:152:21)
frontend_1       | gyp ERR! System Linux 4.15.0-58-generic
frontend_1       | gyp ERR! command "/usr/local/bin/node" "/var/www/node_modules/node-gyp/bin/node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
frontend_1       | gyp ERR! cwd /var/www/node_modules/node-sass
frontend_1       | gyp ERR! node -v v8.16.0
frontend_1       | gyp ERR! node-gyp -v v3.8.0
frontend_1       | gyp ERR! not ok
frontend_1       | Build failed with error code: 1
frontend_1       | info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.

Metadata

Metadata

Labels

P3: NormalPriority mark - normal prioritydocsTasks regarding documentationfeature requestRequests for new features. Please be as specific as possible and provide proposal API if it you canvs-hackathonTasks for the Hackathon

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions