# syntax=docker/dockerfile:1 FROM node:22-slim LABEL org.opencontainers.image.source="https://github.com/Runfusion/Fusion" LABEL org.opencontainers.image.description="AI-orchestrated task board" ENV NODE_ENV=production ENV PORT=4040 RUN apt-get update \ && apt-get install -y --no-install-recommends git build-essential python3 curl ca-certificates \ && rm -rf /var/lib/apt/lists/* RUN corepack enable && corepack prepare pnpm@10.33.0 --activate WORKDIR /app COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./ COPY packages ./packages COPY plugins ./plugins RUN pnpm install --frozen-lockfile COPY . . RUN pnpm build RUN mkdir -p /project && chown -R node:node /project /app RUN ln -s /usr/lib/node_modules/@openai/codex/bin/codex.js /usr/local/bin/codex USER node WORKDIR /project EXPOSE 4040 HEALTHCHECK --interval=30s --timeout=5s --start-period=30s --retries=3 \ CMD curl -fsS -o /dev/null http://localhost:4040/ || exit 1 ENTRYPOINT ["node", "/app/packages/cli/dist/bin.js"] CMD ["dashboard", "--host", "0.0.0.0"]