weed-sim / Dockerfile
Yufok1
Sprite atlas: all art ships as one 354KB fetch
f7cebb4
Raw
History Blame Contribute Delete
990 Bytes
# Hugging Face Space (sdk: docker) build for the WEED-SIM Telegram Mini App.
# Stage 1 builds the Vite client; stage 2 runs the Hono server on Node 22.
FROM node:22-slim AS build
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm ci
COPY vite.config.ts ./
COPY tools ./tools
COPY src ./src
COPY public ./public
RUN npm run build
FROM node:22-slim
# node:22-slim already ships a 'node' user at uid 1000 (the uid HF Spaces
# expects); reuse it, and keep the app under /home/user/app so the Space's
# bucket mount path stays valid.
RUN mkdir -p /home/user/app && chown -R node:node /home/user
USER node
WORKDIR /home/user/app
ENV NODE_ENV=production \
PORT=7860 \
WEEDSIM_DATA_DIR=/home/user/app/data
COPY --chown=node package.json package-lock.json ./
RUN npm ci --omit=dev
COPY --chown=node src/server ./src/server
COPY --chown=node src/shared ./src/shared
COPY --chown=node --from=build /app/dist/client ./dist/client
EXPOSE 7860
CMD ["npx", "tsx", "src/server/index.ts"]