2025-12-23 21:23:50 +01:00
|
|
|
# Frontend QA Agent
|
2026-07-08 04:06:31 +02:00
|
|
|
# Accessibility and code-level testing tools
|
2025-12-23 21:23:50 +01:00
|
|
|
|
|
|
|
|
FROM roboco-agent-base
|
|
|
|
|
|
|
|
|
|
USER root
|
|
|
|
|
|
|
|
|
|
RUN npm install -g pnpm
|
|
|
|
|
|
2026-07-11 07:39:53 +02:00
|
|
|
# Playwright + chromium-headless-shell (not full chromium) for FE QA's
|
|
|
|
|
# browser-based rendering/a11y checks — scoped to this image so agent-dev-fe
|
|
|
|
|
# stays lean. Browsers land in /app/.playwright (not /app/.venv) so the
|
|
|
|
|
# closing chown only touches this new ~small dir, never the pre-owned .venv
|
|
|
|
|
# tree (a chown -R over .venv would COW-duplicate the whole thing into this
|
|
|
|
|
# layer — see the 0.19.0 lean-images CHANGELOG note on agent-grok's chown -R).
|
|
|
|
|
ENV PLAYWRIGHT_BROWSERS_PATH=/app/.playwright
|
|
|
|
|
RUN uv pip install --python /app/.venv/bin/python playwright \
|
|
|
|
|
&& /app/.venv/bin/playwright install --with-deps chromium-headless-shell \
|
|
|
|
|
&& chown -R agent:agent /app/.playwright
|
|
|
|
|
|
|
|
|
|
# Playwright MCP server — structured browser tools (navigate/click/snapshot/
|
|
|
|
|
# screenshot) for QA's browser verification, registered by the orchestrator
|
|
|
|
|
# for the fe-qa/ux-qa roles only (see roboco/runtime/orchestrator.py
|
|
|
|
|
# _generate_mcp_config). Pinned version; the wrapper entrypoint below points
|
|
|
|
|
# it at this image's baked chromium-headless-shell instead of letting it
|
|
|
|
|
# download its own bundled browser.
|
|
|
|
|
RUN npm install -g @playwright/mcp@0.0.78 \
|
|
|
|
|
&& npm cache clean --force
|
|
|
|
|
COPY docker/scripts/playwright-mcp-entrypoint.sh /app/scripts/playwright-mcp-entrypoint.sh
|
|
|
|
|
RUN chmod 0755 /app/scripts/playwright-mcp-entrypoint.sh
|
|
|
|
|
|
2025-12-23 21:23:50 +01:00
|
|
|
USER agent
|
|
|
|
|
|
|
|
|
|
LABEL role="frontend-qa"
|
2026-07-08 04:06:31 +02:00
|
|
|
LABEL description="Frontend QA agent - accessibility, code review, testing"
|