Spaces:
Paused
Paused
| FROM node:lts-buster | |
| USER root | |
| # Create app directory and set permissions | |
| RUN mkdir -p /app && chown -R node:node /app | |
| # Update sources.list to use archived repositories | |
| RUN sed -i 's/http:\/\/deb.debian.org/http:\/\/archive.debian.org/g' /etc/apt/sources.list \ | |
| && echo "Acquire::Check-Valid-Until false;" >> /etc/apt/apt.conf.d/99ignore-valid-until \ | |
| && apt-get update && apt-get install -y \ | |
| git \ | |
| ffmpeg \ | |
| imagemagick \ | |
| webp \ | |
| && apt-get clean \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # Set the working directory | |
| WORKDIR /app | |
| # Clone the private GitHub repository using the GitHub token from Docker BuildKit secrets | |
| RUN --mount=type=secret,id=GITHUB_REPO,required=true \ | |
| --mount=type=secret,id=GITHUB_TOKEN,required=true \ | |
| git clone https://$(cat /run/secrets/GITHUB_TOKEN)@github.com/$(cat /run/secrets/GITHUB_REPO).git . | |
| # Switch to the node user | |
| COPY --chown=node:node . . | |
| RUN mkdir -p /app/lib/database && chown -R node:node /app/lib | |
| # Set permissions for the /app directory to allow writing | |
| RUN chmod -R 777 /app | |
| RUN npm install -g npm@latest | |
| # Install dependencies | |
| RUN npm install node-cache | |
| RUN npm install || yarn install | |
| EXPOSE 7860 | |
| ENV NODE_ENV=production | |
| CMD ["npm", "start"] | |