柔中带刚,刚中带柔,淫荡中富含柔和,刚猛中荡漾风骚,无坚不摧,无孔不入!
全部博文(1669)
分类: 云计算
2014-05-30 10:14:59
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。