# Fable Agent — Docker image for 24/7 cloud deployment # Build: docker build -t fable-agent . # Run: docker run -d --name fable-agent \ # -v ~/.fable-agent:/root/.fable-agent \ # -e EXA_API_KEY=... \ # fable-agent daemon start FROM node:22-alpine AS builder WORKDIR /app COPY package.json tsconfig.json ./ RUN npm install COPY . . RUN npx tsc FROM node:22-alpine AS runner WORKDIR /app RUN addgroup --system --gid 1001 fable && \ adduser --system --uid 1001 fable COPY --from=builder /app/dist ./dist COPY --from=builder /app/node_modules ./node_modules COPY --from=builder /app/package.json ./ COPY --from=builder /app/CONFIG.md ./ COPY --from=builder /app/AGENT.md ./ COPY --from=builder /app/STATE.md ./ COPY --from=builder /app/PHASES ./PHASES COPY --from=builder /app/SKILLS ./SKILLS RUN mkdir -p /data && chown fable:fable /data USER fable ENV NODE_ENV=production ENV FABLE_DATA_DIR=/data VOLUME /data ENTRYPOINT ["node", "dist/index.js"] CMD ["daemon", "start"]