bytelyst-devops-tools/dashboard/web/Dockerfile
root b35de88b08 feat(devops-web): fix responsive layout and add comprehensive dashboard pages
- Fix sidebar layout: use flexbox instead of margin-left approach
- Update sidebar to use responsive display (hidden on mobile, static on desktop)
- Fix mobile overlay z-index and positioning issues
- Add proper flex container structure to all pages
- Add new dashboard pages: health, metrics, system, env, code-quality, settings/cosmos
- Add comprehensive API client and type definitions
- Add error boundary and log viewer components
- Add test infrastructure with Vitest and Playwright
- Add Docker configuration and deployment scripts

Generated with [Devin](https://cli.devin.ai/docs)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-05-11 03:10:31 +00:00

53 lines
1.2 KiB
Docker

# Stage 1: Build
FROM node:22-alpine AS builder
WORKDIR /app
# Build arguments for environment variables
ARG NEXT_PUBLIC_DEVOPS_API_URL
ARG NEXT_PUBLIC_PLATFORM_URL
ARG NEXT_PUBLIC_ADMIN_WEB_URL
ARG NEXT_PUBLIC_PRODUCT_ID
ARG NEXT_PUBLIC_PRODUCT_NAME
# Set environment variables for build
ENV NEXT_PUBLIC_DEVOPS_API_URL=${NEXT_PUBLIC_DEVOPS_API_URL}
ENV NEXT_PUBLIC_PLATFORM_URL=${NEXT_PUBLIC_PLATFORM_URL}
ENV NEXT_PUBLIC_ADMIN_WEB_URL=${NEXT_PUBLIC_ADMIN_WEB_URL}
ENV NEXT_PUBLIC_PRODUCT_ID=${NEXT_PUBLIC_PRODUCT_ID}
ENV NEXT_PUBLIC_PRODUCT_NAME=${NEXT_PUBLIC_PRODUCT_NAME}
# Install dependencies
COPY package.json pnpm-lock.yaml* ./
RUN npm install -g pnpm@10.6.5
RUN pnpm install
# Copy source
COPY next.config.js tsconfig.json tailwind.config.ts postcss.config.js ./
COPY src src/
# Build
RUN pnpm build
# Stage 2: Run
FROM node:22-alpine AS runner
WORKDIR /app
# Install production dependencies
COPY package.json pnpm-lock.yaml* ./
RUN npm install -g pnpm@10.6.5
RUN pnpm install --prod --ignore-scripts
# Copy built web
COPY --from=builder /app/.next ./.next
COPY public ./public
# Set environment
ENV NODE_ENV=production
ENV PORT=3000
EXPOSE 3000
CMD ["npm", "start"]