Unable to set the license with buildoacks

Hi,

I’m trying to install OctoberCMS on DigitalOcean as an App using a buildpack.

The problem arises when the Buildpack tries installing composer packages before setting the license as below:

╭──────────── buildpack detection ───────────╼
 › using Ubuntu 18.04 stack
Detected the following buildpacks suitable to build your app:
   heroku/nodejs-engine        v0.5.1    
   digitalocean/node           v0.3.4    (Node.js)
   digitalocean/php-appdetect  v0.0.3    
   heroku/php                  v1.225.4  (PHP)
   digitalocean/procfile       v0.0.3    (Procfile)
   digitalocean/custom         v0.1.1    (Custom Build Command)
For documentation on the buildpacks used to build your app, please see:
   Node.js  v0.3.4    https://do.co/apps-buildpack-node
   PHP      v1.225.4  https://do.co/apps-buildpack-php
────────────────────────────────────────────╼
─────────── app build ───────────╼
---> Node.js Buildpack
---> Installing toolbox
---> - jq
---> - yj
---> Getting Node version
---> Resolving Node version
---> Downloading and extracting Node v16.19.0
---> Parsing package.json
---> No file to start server
---> either use 'docker run' to start container or add index.js or server.js
Project contains package-lock.json, using npm
Using npm v8.19.3. To configure a different version of npm, set the engines.npm property in package.json.
  See https://do.co/apps-buildpack-node for further instructions.
Installing node_modules using npm (from package-lock.json)
Running npm ci
npm WARN deprecated stable@0.1.8: Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility
npm WARN deprecated querystring@0.2.0: The querystring API is considered Legacy. new code should use the URLSearchParams API instead.
npm WARN deprecated popper.js@1.16.1: You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1
added 779 packages, and audited 780 packages in 15s
80 packages are looking for funding
  run `npm fund` for details
3 high severity vulnerabilities
To address all issues (including breaking changes), run:
  npm audit fix --force
Run `npm audit` for details.
npm notice 
npm notice New major version of npm available! 8.19.3 -> 9.4.0
npm notice Changelog: <https://github.com/npm/cli/releases/tag/v9.4.0>
npm notice Run `npm install -g npm@9.4.0` to update!
npm notice 
-----> Bootstrapping...
-----> Preparing platform package installation...
-----> Installing platform packages...
       - php (8.1.14)
       - apache (2.4.55)
       - composer (2.5.1)
       - nginx (1.22.1)
       NOTICE: detected userland polyfill packages for PHP extensions
       NOTICE: now attempting to install native extension packages
       Installing extensions provided by symfony/polyfill-mbstring:
       - ext-mbstring (bundled with php)  - ext-mbstring... 
       Installing extensions provided by symfony/polyfill-ctype:
       - ext-ctype (already enabled)      - ext-ctype... 
-----> Installing dependencies...
       Composer version 2.5.1 2022-12-22 15:33:54
       Installing dependencies from lock file
       Verifying lock file contents can be installed on current platform.
       Package operations: 111 installs, 0 updates, 0 removals
         - Downloading composer/installers (v1.12.0)
         - Downloading aws/aws-crt-php (v1.0.2)
         - Downloading symfony/process (v6.2.5)
         - Downloading symfony/polyfill-php81 (v1.27.0)
         - Downloading symfony/polyfill-php80 (v1.27.0)
         - Downloading symfony/polyfill-php73 (v1.27.0)
         - Downloading symfony/finder (v6.2.5)
         - Downloading symfony/polyfill-mbstring (v1.27.0)
         - Downloading symfony/polyfill-ctype (v1.27.0)
         - Downloading symfony/filesystem (v6.2.5)
         - Downloading symfony/polyfill-intl-normalizer (v1.27.0)
         - Downloading symfony/polyfill-intl-grapheme (v1.27.0)
         - Downloading symfony/string (v6.2.5)
         - Downloading psr/container (2.0.2)
         - Downloading symfony/service-contracts (v3.2.0)
         - Downloading symfony/deprecation-contracts (v3.2.0)
         - Downloading symfony/console (v6.2.5)
         - Downloading seld/signal-handler (2.0.1)
         - Downloading seld/phar-utils (1.2.1)
         - Downloading seld/jsonlint (1.9.0)
         - Downloading react/promise (v2.9.0)
         - Downloading psr/log (3.0.0)
         - Downloading justinrainbow/json-schema (5.2.12)
         - Downloading composer/pcre (3.1.0)
         - Downloading composer/xdebug-handler (3.0.3)
         - Downloading composer/spdx-licenses (1.5.7)
         - Downloading composer/semver (3.3.2)
         - Downloading composer/metadata-minifier (1.0.0)
         - Downloading composer/class-map-generator (1.0.0)
         - Downloading composer/ca-bundle (1.3.5)
         - Downloading composer/composer (2.5.1)
         - Downloading doctrine/deprecations (v1.0.0)
         - Downloading doctrine/event-manager (1.2.0)
         - Downloading doctrine/cache (2.2.0)
         - Downloading doctrine/dbal (2.13.9)
         - Downloading doctrine/inflector (2.0.6)
         - Downloading doctrine/lexer (3.0.0)
         - Downloading webmozart/assert (1.11.0)
         - Downloading dragonmantank/cron-expression (v3.3.2)
         - Downloading symfony/http-foundation (v6.2.5)
         - Downloading fruitcake/php-cors (v1.2.0)
         - Downloading psr/http-message (1.0.1)
         - Downloading psr/http-client (1.0.1)
         - Downloading ralouphie/getallheaders (3.0.3)
         - Downloading psr/http-factory (1.0.1)
         - Downloading guzzlehttp/psr7 (2.4.3)
         - Downloading guzzlehttp/promises (1.5.2)
         - Downloading guzzlehttp/guzzle (7.5.0)
         - Downloading voku/portable-ascii (2.0.1)
         - Downloading phpoption/phpoption (1.9.0)
         - Downloading graham-campbell/result-type (v1.1.0)
         - Downloading vlucas/phpdotenv (v5.5.0)
         - Downloading symfony/css-selector (v6.2.5)
         - Downloading tijsverkoyen/css-to-inline-styles (2.2.6)
         - Downloading symfony/var-dumper (v6.2.5)
         - Downloading symfony/polyfill-uuid (v1.27.0)
         - Downloading symfony/uid (v6.2.5)
         - Downloading symfony/routing (v6.2.5)
         - Downloading symfony/polyfill-php72 (v1.27.0)
         - Downloading symfony/polyfill-intl-idn (v1.27.0)
         - Downloading symfony/mime (v6.2.5)
         - Downloading psr/event-dispatcher (1.0.0)
         - Downloading symfony/event-dispatcher-contracts (v3.2.0)
         - Downloading symfony/event-dispatcher (v6.2.5)
         - Downloading egulias/email-validator (4.0.1)
         - Downloading symfony/mailer (v6.2.5)
         - Downloading symfony/error-handler (v6.2.5)
         - Downloading symfony/http-kernel (v6.2.5)
         - Downloading ramsey/collection (2.0.0)
         - Downloading brick/math (0.10.2)
         - Downloading ramsey/uuid (4.7.3)
         - Downloading psr/simple-cache (3.0.0)
         - Downloading nunomaduro/termwind (v1.15.0)
         - Downloading symfony/translation-contracts (v3.2.0)
         - Downloading symfony/translation (v6.2.5)
         - Downloading nesbot/carbon (2.65.0)
         - Downloading monolog/monolog (2.8.0)
         - Downloading league/mime-type-detection (1.11.0)
         - Downloading league/flysystem (3.12.2)
         - Downloading nette/utils (v3.2.9)
         - Downloading nette/schema (v1.2.3)
         - Downloading dflydev/dot-access-data (v3.0.2)
         - Downloading league/config (v1.2.0)
         - Downloading league/commonmark (2.3.8)
         - Downloading laravel/serializable-closure (v1.2.2)
         - Downloading laravel/framework (v9.48.0)
         - Downloading laravel/sail (v1.18.1)
         - Downloading nikic/php-parser (v4.15.3)
         - Downloading psy/psysh (v0.11.11)
         - Downloading laravel/tinker (v2.8.0)
         - Downloading league/csv (9.8.0)
         - Downloading mtdowling/jmespath.php (2.6.1)
         - Downloading aws/aws-sdk-php (3.257.10)
         - Downloading league/flysystem-aws-s3-v3 (3.12.2)
         - Downloading linkorb/jsmin-php (1.0.0)
         - Downloading october/tailor (v3.2.10)
         - Downloading october/system (v3.2.10)
         - Downloading october/media (v3.2.10)
         - Downloading october/editor (v3.2.10)
         - Downloading october/cms (v3.2.10)
         - Downloading october/backend (v3.2.10)
         - Downloading october/all (v3.2.0)
         - Downloading rainlab/blog-plugin (v1.6.3)
         - Downloading rainlab/pages-plugin (v1.5.8)
         - Downloading wikimedia/less.php (v3.2.0)
         - Downloading twig/twig (v3.5.0)
         - Downloading symfony/yaml (v6.2.5)
         - Downloading scssphp/scssphp (v1.11.0)
         - Downloading october/rain (v3.2.8)
         - Downloading rainlab/translate-plugin (v2.2.2)
         - Downloading rainlab/user-plugin (v1.6.4)
       
       In AuthHelper.php line 197:
                                                                                      
         The 'https://gateway.octobercms.com/composer/dist/october/cms/october-cms-v  
         3.2.10-9cc332.zip' URL could not be accessed (HTTP 403): HTTP/1.1 403 Forbi  
         dden                                                                         
                                                                                      
       
       install [--prefer-source] [--prefer-dist] [--prefer-install PREFER-INSTALL] [--dry-run] [--download-only] [--dev] [--no-suggest] [--no-dev] [--no-autoloader] [--no-progress] [--no-install] [--audit] [--audit-format AUDIT-FORMAT] [-v|vv|vvv|--verbose] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--apcu-autoloader] [--apcu-autoloader-prefix APCU-AUTOLOADER-PREFIX] [--ignore-platform-req IGNORE-PLATFORM-REQ] [--ignore-platform-reqs] [--] [<packages>...]
       
 !     ERROR: Dependency installation failed!
 !     
 !     The 'composer install' process failed with an error. The cause
 !     may be the download or installation of packages, or a pre- or
 !     post-install hook (e.g. a 'post-install-cmd' item in 'scripts')
 !     in your 'composer.json'.
 !     
 !     Typical error cases are out-of-date or missing parts of code,
 !     timeouts when making external connections, or memory limits.
 !     
 !     Check the above error output closely to determine the cause of
 !     the problem, ensure the code you're pushing is functioning
 !     properly, and that all local changes are committed correctly.
 !     
 !     For more information on builds for PHP on Heroku, refer to
 !     https://devcenter.heroku.com/articles/php-support
ERROR: failed to build: exit status 1
For documentation on the buildpacks used to build your app, please see:
   Node.js  v0.3.4    https://do.co/apps-buildpack-node
   PHP      v1.225.4  https://do.co/apps-buildpack-php
 ✘ build failed

Any clever ideas to get around this problem?
It would be great if we could set the license as env variable.

Thanks

The license is stored in the auth.json file, so if you can deploy that securely, that can work. Alternatively, the october/rain package is public and once installed you can run this command:

php artisan project:set <LICENSE KEY>

Thanks @daft for your reply. Copying auth.json did the tick

1 Like