























@@ -3,6 +3,7 @@ import { describe, expect, it } from "vitest";
3344const SCRIPT_PATH = "scripts/test-install-sh-docker.sh";
55const DOCKER_SETUP_PATH = "scripts/docker/setup.sh";
6+const PODMAN_SETUP_PATH = "scripts/podman/setup.sh";
67const SMOKE_RUNNER_PATH = "scripts/docker/install-sh-smoke/run.sh";
78const BUN_GLOBAL_SMOKE_PATH = "scripts/e2e/bun-global-install-smoke.sh";
89const BUN_GLOBAL_ASSERTIONS_PATH = "scripts/e2e/lib/bun-global-install/assertions.mjs";
@@ -95,6 +96,30 @@ describe("test-install-sh-docker", () => {
9596expect(script).toContain('--build-arg "OPENCLAW_INSTALL_BROWSER=${OPENCLAW_INSTALL_BROWSER}"');
9697});
979899+it("passes image-scoped pip packages through Docker and Podman setup", () => {
100+const dockerSetup = readFileSync(DOCKER_SETUP_PATH, "utf8");
101+const podmanSetup = readFileSync(PODMAN_SETUP_PATH, "utf8");
102+const dockerfile = readFileSync("Dockerfile", "utf8");
103+104+expect(dockerfile).toContain("ARG OPENCLAW_IMAGE_PIP_PACKAGES");
105+expect(dockerfile).toContain(
106+"python3 -m pip install --no-cache-dir --break-system-packages $OPENCLAW_IMAGE_PIP_PACKAGES",
107+);
108+expect(dockerSetup).toContain(
109+'export OPENCLAW_IMAGE_PIP_PACKAGES="${OPENCLAW_IMAGE_PIP_PACKAGES:-}"',
110+);
111+expect(dockerSetup).toContain("OPENCLAW_IMAGE_PIP_PACKAGES \\");
112+expect(dockerSetup).toContain(
113+'--build-arg "OPENCLAW_IMAGE_PIP_PACKAGES=${OPENCLAW_IMAGE_PIP_PACKAGES}"',
114+);
115+expect(dockerSetup).not.toContain("OPENCLAW_DOCKER_PIP_PACKAGES");
116+expect(podmanSetup).toContain('OPENCLAW_IMAGE_PIP_PACKAGES="${OPENCLAW_IMAGE_PIP_PACKAGES:-}"');
117+expect(podmanSetup).toContain(
118+'BUILD_ARGS+=(--build-arg "OPENCLAW_IMAGE_PIP_PACKAGES=${OPENCLAW_IMAGE_PIP_PACKAGES}")',
119+);
120+expect(podmanSetup).not.toContain("OPENCLAW_DOCKER_PIP_PACKAGES");
121+});
122+98123it("allows repository branch history and release tags for secret-backed Docker release checks", () => {
99124const workflow = readFileSync(LIVE_E2E_WORKFLOW_PATH, "utf8");
100125此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。