sonli2026/layoutly
0
1FROM node:22-bookworm-slim2 3ENV NODE_ENV=production \4 PUPPETEER_SKIP_DOWNLOAD=true \5 PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium6 7RUN apt-get update \8 && apt-get install -y --no-install-recommends \9 ca-certificates \10 chromium \11 fonts-dejavu-core \12 fonts-freefont-ttf \13 fonts-noto-cjk \14 fonts-noto-color-emoji \15 fonts-noto-core \16 fonts-thai-tlwg \17 && rm -rf /var/lib/apt/lists/*18 19WORKDIR /usr/src/app20 21COPY package.json package-lock.json ./22RUN npm ci --omit=dev \23 && npm cache clean --force24 25COPY server.js ./26RUN chown -R node:node /usr/src/app27 28USER node29 30EXPOSE 786031 32HEALTHCHECK --interval=30s --timeout=8s --start-period=30s --retries=3 \33 CMD node -e "fetch('http://127.0.0.1:7860/health').then(r=>{if(!r.ok)process.exit(1)}).catch(()=>process.exit(1))"34 35CMD ["node", "server.js"]36 