应用中心启动命令逻辑
2022-09-13 15:29:00 0 举报
xxxxx
作者其他创作
大纲/内容
容器名称为serviceId?
关于CMD和ENTRYPOINT的差异https://docs.docker.com/engine/reference/builder/#understand-how-cmd-and-entrypoint-interact
以下格式都是可解析的,最终都能从构建记录中查到构建时的启动命令command2harbor.intra.ke.com/cloud/odin-data/builder12:master_v104harbor.intra.ke.com/cloud/odin-data/builder12:master_20220403115945_v14harbor.intra.ke.com/test/1875206094142464:master_2042011468270592
以目前应用中心的构建为例,则执行CMD的逻辑,实际上镜像中也会指定RUN_CMD环境变量为和启动命令相同的值,但是启动命令由于是用户自己指定的,一般是不用到的,因为构建本身是个黑盒,用户不知道dockerfile指令了这么一个环境变量
新的command会写入到RUN_CMD环境变量k8s容器启动命令将会根据语言类型,从apollo中读取脚本,挂载configmap至/opt/application/init/run.sh,最终启动命令写死为/bin/sh -c /opt/application/init/run.sh,该脚本中会在某些情况调用到RUN_CMD
容器可解析
不处理容器command,默认使用容器的entrypoint
开始
是
command1传入了数据
否
从构建记录中获取command2
目前应用中心不注入其他容器,因此这个路径可以忽略不处理
数据传入启动命令command1[\"xxx\"]这个命令是在部署的编辑页面传入的
得到新的command
收藏
收藏
0 条评论
下一页