Opendesign / Dockerfile
abcd118q's picture
Update Dockerfile
ea13815 verified
Raw
History Blame Contribute Delete
1.59 kB
# --- Stage 1: Build Environment ---
FROM node:24-slim AS builder
RUN corepack enable && corepack prepare pnpm@10.33.2 --activate
WORKDIR /app
# Install build dependencies
RUN apt-get update && apt-get install -y git python3 make g++ curl && rm -rf /var/lib/apt/lists/*
# Clone the official repository
RUN git clone https://github.com/nexu-io/open-design.git .
RUN pnpm install --frozen-lockfile
# Compile the packages
RUN pnpm --filter @open-design/web build
RUN pnpm --filter @open-design/daemon build
# --- Stage 2: Production Runtime ---
FROM node:24-slim
ENV PNPM_HOME="/usr/local/bin"
RUN corepack enable && corepack prepare pnpm@10.33.2 --activate
RUN apt-get update && apt-get install -y git curl ca-certificates && rm -rf /var/lib/apt/lists/*
# Install OpenCode CLI globally
RUN npm install -g opencode-ai
WORKDIR /app
COPY --from=builder --chown=1000:1000 /app /app
# Set up application folders
RUN mkdir -p /app/.tmp /data/.opencode /data/designs /home/node/.config/opencode && \
chown -R 1000:1000 /app /data /home/node/.config
# Seed the default config
RUN echo '{"provider": "opencode-zen", "model": "big-pickle", "telemetry": false}' > /home/node/.config/opencode/opencode.json
USER 1000
# --- THE FIX: Correct Env Vars ---
ENV OD_HOST=0.0.0.0
ENV PORT=7860
ENV OD_PORT=7860
# Stop the browser from opening
ENV BROWSER=none
ENV NO_OPEN=true
# Storage Dirs
ENV DATA_DIR=/data
ENV TMPDIR=/tmp
ENV PATH="/usr/local/bin:/home/node/.local/bin:$PATH"
EXPOSE 7860
# --- THE FIX: Correct Production Launch Command ---
CMD ["pnpm", "tools-dev", "run", "--prod"]