0
votes

I have an Angular app, it is served via a small NodeJs app.

I have a Jenkins Job who build my app and package it.

The output artifacts are a dist directory with the angular app and the node app.js file to do the serving.

I want now to take those artifacts to push them to bluemix.

The thing is :

  • You need a package.json file for cloudfoundry to detect the nodeJs buildpack
  • When you have a package.json bluemix/cloudfoundry(?) execute npm install / build / test commands

I already have a builded application, so I simply need to call node app.js for my app to be served. And in terms of devops I would prefer to keep the Only Build Once good practice in place.

My current bypass is to have an empty package.json to trick bluemix.

So, I want to know if It's possible to deploy a node application on bluemix without needing a package.json ?

Or at least disable the npm commands ?

I just want bluemix/cloudfoundry(?) to do a node app.js

Thanks for your help

1

1 Answers

1
votes

There are two ways (manifest.yml and command line) to target a specific build pack. This webpage documents the model https://docs.cloudfoundry.org/buildpacks/node/node-tips.html#discovery

You may also want to consider shrinkwrap (https://docs.npmjs.com/cli/shrinkwrap) for locking the versioning of your dependencies.

If you combine these two, I think it gets you closer to your goals.