(I also posted the same question on StackOverflow. http://stackoverflow.com/questions/42665004/how-to-avoid-no-space-left-on-device-on-bluemix-pipeline-staging )
I'm using Bluemix ToolChain service, i.e. CI service.
Deploy staging failed because no space left to device
.
I changed disk_quota setting default to 1024M and 2048MB using manifest.yml, but the both results are the same as default disk_quota.
Also I tried buildpack setting default to sdk-for-nodejs
because if I use default value, it will download many unnecessary buildpack files (e.g. java related buildpack). I thought it will bring saving space, but the result is the same again.
How can I fix this? Do you have any ideas?
Here is the error log. (Too long log, so I replace some logs to ":")
Target: https://api.ng.bluemix.net
Using manifest file /home/pipeline/aafdbd4d-c22d-4fee-ae34-8d1146cacb56/manifest.yml
:
:
Uploading 101M, 117985 files
Done uploading
OK
:
:
Downloading sdk-for-nodejs...
Downloaded sdk-for-nodejs
Creating container
Successfully created container
Downloading app package...
Downloaded app package (107.3M)
Downloading build artifacts cache...
Downloaded build artifacts cache (6M)
Staging...
-----> IBM SDK for Node.js Buildpack v3.10-20170119-1146
Based on Cloud Foundry Node.js Buildpack v1.5.24
-----> Creating runtime environment
NPM_CONFIG_LOGLEVEL=error
NODE_MODULES_CACHE=true
-----> Installing binaries
engines.node (package.json): unspecified
engines.npm (package.json): unspecified (use default)
Resolving node version (latest stable) via 'node-version-resolver'
Installing IBM SDK for Node.js (4.7.2) from cache
-----> Restoring cache
-----> Checking and configuring service extensions before installing dependencies
-----> Building dependencies
Prebuild detected (node_modules already exists)
Rebuilding any native modules
Skipping cache restore (new runtime signature)
body-parser@1.17.1 /tmp/app/node_modules/body-parser
:
:
core-util-is@1.0.2 /tmp/app/node_modules/webpack/node_modules/memory-fs/node_modules/readable-stream/node_modules/core-util-is
-----> Installing App Management
-----> Caching build
Saving 2 cacheDirectories (default):
Clearing previous node cache
- node_modules
-----> Build succeeded!
├── body-parser@1.17.1
├── bootstrap@3.3.7
├── config@1.25.1
├── express@4.15.2
├── jquery@3.1.1
├── react@15.4.2
├── react-dom@15.4.2
├── react-redux@4.4.6
├── redux@3.6.0
├── redux-thunk@2.2.0
├── request@2.80.0
└── request-promise@4.1.1
cp: cannot create regular file ‘/tmp/contents666597699/app/node_modules/babel-core/node_modules/babel-register/node_modules/core-js/library/modules/_date-to-primitive.js’: No space left on device
:
:
cp: cannot create regular file ‘/tmp/contents666597699/app/node_modules/babel-core/node_modules/babel-register/node_modules/core-js/library/modules/es6.regexp.search.js’: No space left on device
cp: : No space left on device
Exit status 1
Staging failed: Exited with status 1
Destroying container
cp: cannot create regular file ‘/tmp/contents666597699/app/node_modules/babel-core/node_modules/babel-register/node_modules/core-js/library/modules/_wks.js’: No space left on device
Successfully destroyed container
FAILED
Error restarting application: StagingError
TIP: use 'cf logs kcuc-web --recent' for more information
Finished: FAILED
And also this is my manifest.yml file.
applications:
- path: .
memory: 256M
instances: 1
domain: mybluemix.net
name: xxxxx
host: xxxxx
disk_quota: 1024M
buildpack: sdk-for-nodejs
env:
DEBUG: 'false'
API_PROTOCOL: https
API_HOST: xxxxx.mybluemix.net
API_PORT: '443'
CLIENT_PORT: '443'
Answer by Todd Kaplinger (81) | Mar 08, 2017 at 05:57 AM
The error message appears to be coming from the CloudFoundry CF push action. Since this is a Node.js application, can we eliminate some of the moving parts (as node does not need to be compiled) and see if the CF push command from your development machine encounters the same issue.
If the same issue occurs, we can then see what the suggested command 'TIP: use 'cf logs kcuc-web --recent' for more information' returns. My thinking is that the size of the upload ( Uploading 101M, 117985 files) is quite large but the number of node modules for your react app are not.
One possible option available from the command line is to specify a .cfignore (similar to .gitnore) where you can specify to ignore the node_modules/ directory. I believe the trailing / is optiona but the file would look like thisl:
node_modules/
Amazing! Thank you, Todd.
I did not understand well about these cf's behavior, so I could not reach this solution without you. I add .cfignore with "node_modules/" and as a result not only staging is succeeded, but staging speed become much faster!
Answer by Todd Kaplinger (81) | Mar 09, 2017 at 05:42 AM
@JenniferS.. May I suggest you open another issue w/ the log output. My guess is there is something slightly different!
@TakuyaKojima Great news!!!
Answer by melissa.denby (163) | Feb 09, 2018 at 02:10 PM
You’ve run out of space on your IBM Cloud Org. The solution is to either buy more space or stop running some of your other apps to free up space. To stop running an app do this: Click the IBM Cloud name at the top of your page to go to your Dashboard. This will show you all the Cloud Foundry Apps and Services that are running. To stop an app click the overflow menu and select “Stop App”. To add more space do this: Click the IBM Cloud name at the top of your page to go to your Dashboard. Select the Application you’d like to add more space to from the list of applications. This will take you to the Overview page for that application. In the Runtime section of the page you will see “MB Memory Per Instance” with a “+” and “-” next to it. Click the plus sign to increase the memory.