2017-03-08 19 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 .. –

相关问题