| FROM node:24-slim as nodebuilder |
| FROM rclone/rclone:latest AS rclone |
|
|
|
|
| |
| FROM python:3.11-slim |
| ENV REMOTE_FOLDER="huggingface:/wenfxl" |
|
|
|
|
|
|
| COPY --from=nodebuilder /usr/local/bin/node /usr/local/bin/ |
| COPY --from=nodebuilder /usr/local/lib/node_modules/. /usr/local/lib/node_modules/ |
| COPY --from=rclone /usr/local/bin/rclone /usr/bin/rclone |
|
|
| |
| WORKDIR /app |
|
|
| |
| RUN ln -s /usr/local/lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm && \ |
| apt-get update && apt-get install -y \ |
| curl \ |
| wget \ |
| ca-certificates \ |
| zsh \ |
| cron \ |
| tzdata \ |
| perl \ |
| openssl \ |
| openssh-client \ |
| nginx \ |
| jq \ |
| cron \ |
| && rm -rf /var/lib/apt/lists/* |
|
|
| |
| RUN REPO="wenfxl/openai-cpa" && \ |
| RELEASE_INFO=$(curl -s https://api.github.com/repos/${REPO}/releases/latest) && \ |
| DOWNLOAD_URL=$(echo $RELEASE_INFO | jq -r '.tarball_url') && \ |
| TAG_NAME=$(echo $RELEASE_INFO | jq -r '.tag_name') && \ |
| echo "Latest release tag: $TAG_NAME" && \ |
| echo "Downloading from: $DOWNLOAD_URL" && \ |
| wget -O release.tar.gz "$DOWNLOAD_URL" && \ |
| mkdir -p /app/src && \ |
| tar -xzf release.tar.gz -C /app/src --strip-components=1 && \ |
| rm release.tar.gz |
| RUN rclone config -h |
| RUN npm install -g pm2 |
|
|
| |
| WORKDIR /app/src |
|
|
| |
| WORKDIR /app |
|
|
| RUN rm -f /app/src/utils/email_providers/generator_email_service.py |
| COPY generator_email_service.py /app/src/utils/email_providers/generator_email_service.py |
|
|
| |
| COPY scripts /app/scripts |
| COPY bootstrap.py /app/src/bootstrap.py |
| COPY message_producer.py /app/src/message_producer.py |
|
|
| |
| RUN chmod +x /app/scripts/entrypoint.sh |
| RUN chmod +x /app/scripts/backup.sh |
|
|
| RUN echo "3 2 * * * root /app/scripts/backup.sh" > /etc/cron.d/backup |
| RUN chmod 0644 /etc/cron.d/backup |
| RUN crontab /etc/cron.d/backup |
|
|
|
|
| COPY nginx.conf /etc/nginx/nginx.conf |
| COPY apps.conf /etc/nginx/conf.d/apps.conf |
|
|
| |
| WORKDIR /app/src |
|
|
| |
| RUN pip install --no-cache-dir -r requirements.txt |
| RUN pip install pika |
|
|
| |
| EXPOSE 5700 |
|
|
| |
| ENTRYPOINT ["/app/scripts/entrypoint.sh"] |