From 79b1aec17ec40915d0f3bcfe40642a1e0a69c45d Mon Sep 17 00:00:00 2001 From: "moviepilot-codex[bot]" Date: Mon, 21 Sep 2026 21:43:43 +0800 Subject: [PATCH] fix(docker): bundle only V3 plugins --- docker/Dockerfile | 8 +------- tests/test_docker_payload_contract.py | 7 +++++++ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 3bf11db5e..0bc083b7c 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -231,13 +231,7 @@ RUN set -eu; \ plugin_root="$(find /tmp/plugins-src -mindepth 1 -maxdepth 1 -type d -print -quit)"; \ test -n "${plugin_root}"; \ mkdir -p /plugins; \ - cp -a "${plugin_root}/plugins.v2/." /plugins/; \ - jq -r 'to_entries[] | select(.value.v2 == true) | .key' "${plugin_root}/package.json" | awk '{print tolower($0)}' | \ - while read -r plugin_id; do \ - if [ ! -d "/plugins/${plugin_id}" ]; then \ - cp -a "${plugin_root}/plugins/${plugin_id}" /plugins/; \ - fi; \ - done + cp -a "${plugin_root}/plugins.v3/." /plugins/ # 准备站点资源 diff --git a/tests/test_docker_payload_contract.py b/tests/test_docker_payload_contract.py index 55471c0d1..f38364c55 100644 --- a/tests/test_docker_payload_contract.py +++ b/tests/test_docker_payload_contract.py @@ -84,6 +84,13 @@ def test_dockerfile_assigns_each_payload_to_an_independent_stage() -> None: assert final.count("COPY --from=ffmpeg ") == 1 assert "RUN rm -rf /app/frontend-dist" in dockerfile + plugin_stage_start = dockerfile.index("FROM prepare_payload AS prepare_plugins") + plugin_stage_end = dockerfile.index("# 准备站点资源", plugin_stage_start) + plugin_stage = dockerfile[plugin_stage_start:plugin_stage_end] + assert 'cp -a "${plugin_root}/plugins.v3/." /plugins/' in plugin_stage + assert "plugins.v2" not in plugin_stage + assert '"${plugin_root}/package.json"' not in plugin_stage + def test_plugin_runtime_updates_preserve_host_entrypoint() -> None: """更新载荷只迁移插件内容,不得覆盖新版宿主包根兼容入口。"""