Commit cada6874 authored by zhouzihao's avatar zhouzihao

dev-添加项目源数据控制缓存文件的新特性

parent e27ddcba
......@@ -91,6 +91,64 @@ const serve_url = "http://127.0.0.1:3000" //后端想的服务地址
使用`exec-file`来修改这个规则,可以使用通配符,而且在这个列表中你可以直接写字符串,他的作业和写一个Object只配置name字段是等效的。
> 注意 exec-file 参数应该只能识别到一个文件。
### [新特性] 配置额外参数
在项目源数据中可以配置一些额外的参数。保证项目在构建镜像时有额外的动作。其中包括缓存文件夹和添加额外的Dockerfile指令。
- cache
- docker-file-str
#### cache
缓存文件配置在元数据的的根节点。和module_list同级。可以直接写一个字符串。也可以配置一个字符串的列表。一旦配置在项目的各个构建环节中才可以使用。
```json
{
"module_list":[
{
"name":"app-a",
"exec-file":"app-a-*-bb"
},
"app-b"
],
# "cache":"dir1/dir2/"
"cache":[
"dir1",
"dir2",
"dir3",
]
}
```
> 注意:不要去配置和模块名下相同的target目录。这个目录在java构建中被默认缓存了。
### docker-file-str
在构建中存在修改dockerfile的情况。在dockerfile中要添加额外的运行参数。或者安装依赖等。这时就要用到`docker-file-str`的配置。
它要配置在模块中,必选在模块列表中的对象中。比如我要在项目中安装某个命令。
```json
{
"module_list":[
{
"name":"app-a",
"docker-file-str":"RUN apt install command"
},
"app-b"
]
}
```
也可以复制某个文件到容器中。可以和cache配合使用达到复制文件的效果。(换句话说如果是没有缓存的文件无法复制)
```json
{
"module_list":[
{
"name":"app-a",
"docker-file-str":"RUN Dir1/file1 file2"
},
"app-b"
],
"cache":"Dir1/file1"
}
```
注意不要运行危险的命令!如果要输入多条命令仅仅用“\n”换行符分割即可。
## 配置中心
......
......@@ -119,6 +119,21 @@ const buildJava = async (projectObj, envObj, typeObj, configList, branch, versio
var docker_push_str = "";
var deploy_str = "";
//添加源数据参数 缓存地址
if (_.has(projectMetaData, 'cache')) {
var project_cache = _.get(projectMetaData, 'cache');
if (_.isObject(project_cache)) {
throw new Error("unknow config");
}
let cache_list = [];
if (_.isString(project_cache)) {
cache_list.push(project_cache);
}
for (let v of cache_list) {
cache += " - " + v;
}
}
// todo 处理docker登录问题
var username = _.get(envObj, 'registry_username');
var password = _.get(envObj, 'registry_password');
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment