Spaces:
Running
Running
| FROM node:lts-bullseye | |
| 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 apt-get update \ | |
| && apt-get install -y \ | |
| ffmpeg \ | |
| imagemagick \ | |
| build-essential \ | |
| git \ | |
| libtool \ | |
| automake \ | |
| autoconf \ | |
| ca-certificates \ | |
| && 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 ["./start.sh"] |