diff --git a/docs/container_command_docker_json.md b/docs/container_command_docker_json.md index bf3708a..ff10fbf 100644 --- a/docs/container_command_docker_json.md +++ b/docs/container_command_docker_json.md @@ -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`。 diff --git a/src/docker/docker_deploy_manager.erl b/src/docker/docker_deploy_manager.erl index fb2a36e..9fb0ecc 100644 --- a/src/docker/docker_deploy_manager.erl +++ b/src/docker/docker_deploy_manager.erl @@ -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)}};