34 lines
1003 B
Docker
34 lines
1003 B
Docker
# 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"]
|