FROM node:20-slim WORKDIR /app # Install dependencies for node-canvas + CA certificates RUN apt-get update && \ DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ git \ ca-certificates \ build-essential \ libcairo2-dev \ libpango1.0-dev \ libjpeg-dev \ libgif-dev \ librsvg2-dev \ pkg-config \ python3 \ fonts-noto \ fonts-noto-cjk \ imagemagick \ libssl-dev \ uuid-dev \ libvips-dev && \ rm -rf /var/lib/apt/lists/* # Clone repo pakai secrets RUN --mount=type=secret,id=GITHUB_TOKEN,mode=0444 \ --mount=type=secret,id=GITHUB_REPO,mode=0444 \ git clone https://$(cat /run/secrets/GITHUB_TOKEN)@github.com/$(cat /run/secrets/GITHUB_REPO).git /app # Copy package.json & install deps COPY package*.json ./ RUN npm install --build-from-source=canvas # Copy source code COPY . . EXPOSE 7860 CMD ["npm", "start"]