Files
PiAgentUI/docker/Dockerfile.frontend
T
Evandro b3489e1ede
Build & Push Frontend Docker Image / build-and-push (push) Canceled after 0s
Build Validation / validate (push) Canceled after 6s
Build & Push Backend Docker Image / build-and-push (push) Failing after 10m10s
Build & Push Gateway Docker Image / build-and-push (push) Failing after 10m9s
🎉 Initial commit: PiAgentUI — AI Agent Desktop & Web UI
A professional workspace for AI coding agents with:
- Real-time streaming chat with SSE
- Session management (fork, clone, tree navigation)
- MCP tools browser & metadata panel
- Skills browser (global, project, package sources)
- Voice input & STT provider configuration
- Integrated terminal & file explorer
- Model selector with capability metadata
- Keyboard-first UI with command palette
- 8 languages (en, pt-BR, es, ja, zh-CN, ar, bn, hi)
- Tauri 2 desktop app
- React 19 + TypeScript + Vite 8 + Tailwind CSS 4
- Pi Agent extension runtime

Originally forked from OpenCodeUI, now an independent project.
License: GPL-3.0-only
2026-06-01 00:50:06 -03:00

49 lines
1.6 KiB
Docker
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ============================================
# OpenCode WebUI - Frontend
# ============================================
# 纯前端静态文件 + Caddy 反向代理 API
# ---- Stage 1: 构建前端 ----
# 前端产物是静态文件,和目标 CPU 架构无关。
# 多架构镜像构建时让 Node builder 始终跑在构建机原生平台,避免 arm64 通过 QEMU 重跑 npm/vite 构建。
FROM --platform=$BUILDPLATFORM node:22-alpine AS builder
ARG NPM_REGISTRY=https://registry.npmjs.org/
ARG NPM_REGISTRY_FALLBACK=https://registry.npmmirror.com/
WORKDIR /app
COPY package.json package-lock.json ./
RUN set -eux; \
npm config set registry "${NPM_REGISTRY}"; \
npm config set fetch-retries 5; \
npm config set fetch-retry-factor 2; \
npm config set fetch-retry-mintimeout 10000; \
npm config set fetch-retry-maxtimeout 120000; \
npm config set audit false; \
npm config set fund false; \
if npm ci --ignore-scripts; then \
exit 0; \
fi; \
echo "npm ci failed on ${NPM_REGISTRY}, retrying with ${NPM_REGISTRY_FALLBACK}"; \
npm cache clean --force; \
npm config set registry "${NPM_REGISTRY_FALLBACK}"; \
npm ci --ignore-scripts
COPY . .
RUN node scripts/copy-material-icons.mjs
ENV VITE_API_BASE_URL=/api
RUN npm run build
# ---- Stage 2: Caddy 运行时 ----
FROM caddy:2-alpine
# 前端静态文件
COPY --from=builder /app/dist /srv
# Caddy 配置(默认 + standalone)
COPY docker/Caddyfile /etc/caddy/Caddyfile
COPY docker/Caddyfile.standalone /etc/caddy/Caddyfile.standalone
EXPOSE 3000
CMD ["caddy", "run", "--config", "/etc/caddy/Caddyfile"]