调整和iot的通讯机制
This commit is contained in:
parent
64243bfb39
commit
bd0503144d
@ -190,7 +190,6 @@ docker_helper:update_container_config(ContainerNameOrId, iolist_to_binary(Config
|
||||
```erlang
|
||||
#{
|
||||
container_name => ContainerName,
|
||||
container_dir => ContainerDir,
|
||||
create => Create
|
||||
}
|
||||
```
|
||||
@ -200,10 +199,15 @@ docker_helper:update_container_config(ContainerNameOrId, iolist_to_binary(Config
|
||||
| 字段 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `container_name` | binary | 容器名称。用于容器创建 URL 的 `name` 参数,也会注入环境变量 `CONTAINER_NAME`。 |
|
||||
| `container_dir` | binary | 容器在 efka 主机上的应用目录。为空时使用 `efka.root_dir/ContainerName/`。 |
|
||||
| `create` | map | Docker create options 的中间结构,由 `iot` 侧构造,`efka` 侧补丁后转为 Docker JSON。 |
|
||||
|
||||
`docker_deploy_manager` 会根据 `container_name` 和 `container_dir` 确保容器目录存在,并写入 `.container_dir` 指针文件。
|
||||
`docker_deploy_manager` 会根据 `container_name` 按系统默认规则确保容器目录存在。目录固定为:
|
||||
|
||||
```text
|
||||
efka.root_dir/container_name/
|
||||
```
|
||||
|
||||
即使旧客户端在 `params` 中携带 `container_dir`,当前 deploy 流程也会忽略它,避免 HTTP 调用方控制 efka 主机上的写入目录。
|
||||
|
||||
## 5. create 中间结构
|
||||
|
||||
@ -660,7 +664,6 @@ efka 自动补丁后输出:
|
||||
task_id => 1001,
|
||||
params => #{
|
||||
container_name => <<"my_nginx">>,
|
||||
container_dir => <<"/data/apps/my_nginx">>,
|
||||
create => #{
|
||||
config => #{
|
||||
image => <<"docker.io/library/nginx:latest">>,
|
||||
@ -709,7 +712,7 @@ efka 自动补丁后输出:
|
||||
"Healthcheck": {},
|
||||
"HostConfig": {
|
||||
"Binds": [
|
||||
"/data/apps/my_nginx/service.conf:/usr/local/etc/service.conf",
|
||||
"/efka/root/my_nginx/service.conf:/usr/local/etc/service.conf",
|
||||
"/host/data:/data"
|
||||
],
|
||||
"RestartPolicy": {
|
||||
@ -724,7 +727,7 @@ efka 自动补丁后输出:
|
||||
|
||||
deploy action 的执行流程:
|
||||
|
||||
1. 根据 `container_name` 和 `container_dir` 确保容器目录存在。
|
||||
1. 根据 `container_name` 和 `efka.root_dir` 确保默认容器目录存在。
|
||||
2. 启动独立部署进程。
|
||||
3. 部署进程上报任务事件流。
|
||||
4. 规范化镜像名:如果镜像最后一段没有 tag,则补 `:latest`。
|
||||
|
||||
@ -50,8 +50,7 @@ init([]) ->
|
||||
handle_call({deploy, TaskId, Params}, _From, State = #state{root_dir = RootDir, task_map = TaskMap})
|
||||
when is_map(Params) ->
|
||||
ContainerName = maps:get(container_name, Params),
|
||||
ContainerDir0 = maps:get(container_dir, Params, <<>>),
|
||||
{ok, ContainerDir} = docker_helper:ensure_container_dir(RootDir, ContainerName, ContainerDir0),
|
||||
{ok, ContainerDir} = docker_helper:ensure_container_dir(RootDir, ContainerName),
|
||||
{ok, {TaskPid, _Ref}} = docker_deployer:start_monitor(TaskId, ContainerDir, Params),
|
||||
logger:debug("[docker_deploy_manager] start deploy task_id: ~p, params: ~p", [TaskId, Params]),
|
||||
{reply, ok, State#state{task_map = maps:put(TaskPid, TaskId, TaskMap)}};
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user