您的位置:首页 > 其它

CloudFoundry DEA staging 源码流程

2014-01-20 14:18 239 查看
1、Dea 执行staging时,首先创建一个container(该container的默认内存为 1024M,硬盘大小默认为2*1024)

Workspace.prepare// 主备打包workspace

with_network = false

container.create_container(bind_mounts,

disk_limit_in_bytes,

memory_limit_in_bytes,

with_network)

promises = [promise_app_download]

2、下载app包到/var/vcap/data/dea_next/staging

3、在container中准备日志信息,创建app目录

4、将/var/vcap/data/dea_next/staging目录中的app.zip解压到 container中的/tmp/unstaged 下

5、将 下载到dea的build_cache的buildpack_cache.tgz 解压到container中的/tmp/cache

6、携带staging信息,在continer中执行/var/vcap/data/packages/dea_next/30/buildpacks/bin/run

脚本,开始stage。

7、在container中,将执行完第6步的数据打包成droplet.tgz,放在warden中的/tmp/目录

8、将droplet.tgz从container中/tmp/droplet.tgz拷贝到dea中的目录/var/vcap/data/dea_next/staging/{d20140120-13163-gm2wrd}/staged/droplet.tgz

9、获得该文件的

Digest::SHA1.file(workspace.staged_droplet_path).hexdigest

10、将droplet保存到 /var/vcap/data/dea_next/droplets

11、将上传droplet的日志保存在warden的

/tmp/staged/logs/staging_task.log

12、将container中的staging_info.yml copy到dea中

13、将dea中保存的droplet 上传到CloudController,(上传的url从staging message中获取)

14、将在container中打包使用的 buildpack_cache 保存到dea的workspace,将这些buildpack_cache上传到CloudController。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: