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。
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。
相关文章推荐
- CloudFoundry warden 启动源码分析
- cloudfoundry dea 之 app staging
- Cloud foundry warden 源码学习(2)
- Cloud foundry warden 源码学习(3)
- Cloud Foundry Service Gateway源码分析
- CloudFoundry warden 创建container 源码研究
- Cloud foundry warden 源码学习(4)
- Cloud Foundry Service Node源码分析及实现
- Cloud Foundry Service Node源码分析及实现【附下载】
- Solr4.8.0源码分析(25)之SolrCloud的Split流程
- Yarn源码分析之MRAppMaster上MapReduce作业处理总流程(一)
- nginx源码分析—启动流程
- 8.0源码解析:Activity启动流程
- 分布式文件系统 fastdfs源码上传流程分析
- Android UI绘制流程源码分析
- 【requireJS源码学习03】细究requireJS的加载流程
- Redis运行流程源码解析
- Android View 绘制流程 与invalidate 和postInvalidate 分析--从源码角度
- linux内存源码分析 - 内存回收(整体流程)
- Spring Cloud Eureka 全解 (4) - 核心流程-服务与实例列表获取详解