2017-03-08 78 views
1

我正在使用Bluemix ToolChain服務,即CI服務。如何避免Bluemix管道分段中的「設備上沒有剩餘空間」?

由於no space left to device,部署暫存失敗。

我使用manifest.yml將disk_quota設置默認值更改爲1024M和2048MB,但兩者的結果與默認disk_quota相同。

此外,我嘗試buildpack設置默認爲sdk-for-nodejs,因爲如果我使用默認值,它會下載許多不必要的buildpack文件(例如java相關的buildpack)。我認爲這會帶來節省空間,但結果是一樣的。

我該如何解決這個問題?你有什麼想法?

這裏是錯誤日誌。 (太長日誌,所以我把一些日誌替換爲「:」)

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) 
     [email protected] /tmp/app/node_modules/body-parser 
     : 
     : 
     [email protected] /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! 
     ├── [email protected] 
     ├── boo[email protected] 
     ├── [email protected] 
     ├── [email protected] 
     ├── [email protected] 
     ├── [email protected] 
     ├── [email protected] 
     ├── [email protected] 
     ├── [email protected] 
     ├── [email protected] 
     ├── [email protected] 
     └── [email protected] 

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 

而且這也是我的manifest.yml文件。

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' 

回答

3

我在developerWorks上得到了答案。 (謝謝Todd Kaplinger。)

在部署階段複製不必要的node_modules目錄是根本原因。 因此,我必須添加.cfignore並添加node_modules/。 (語法就像.gitignore

(爲什麼不必要的,因爲構建? - >部署被鏈接的過程,所以構建已經完成在這種情況下,node_modules目錄是部署階段不必要的)

之後,下載應用程序包大小變爲1MB以下,不必要的複製任務將被消除。其結果是,不僅部署成功,而且部署升級速度變得更快。

+0

解釋如何添加.cfignore –

+1

只需通過編輯器等進行添加。 'vi .cfignore','touch .cfignore','echo'node_modules /「> .cfignore'等等。 – tkhm

+0

明白了。 thnnks .. –

相關問題