# syntax=docker/dockerfile:1.4 FROM node:20-slim # ----------------------------- # Install system dependencies # ----------------------------- RUN apt-get update && \ apt-get install -y git curl ca-certificates && \ rm -rf /var/lib/apt/lists/* # ----------------------------- # Install Git LFS # ----------------------------- RUN curl -sSL https://github.com/git-lfs/git-lfs/releases/download/v3.4.0/git-lfs-linux-amd64-v3.4.0.tar.gz \ | tar -xz -C /tmp && \ mv /tmp/git-lfs-3.4.0/git-lfs /usr/local/bin/git-lfs && \ chmod +x /usr/local/bin/git-lfs && \ git lfs install # ----------------------------- # Working directory # ----------------------------- WORKDIR /app # Clean /app in case anything exists RUN rm -rf /app/* || true # ----------------------------- # Clone private repo, pull LFS, remove .git # ----------------------------- ARG CACHEBUST=$(date +%s) RUN --mount=type=secret,id=GH_TOKEN \ git clone --depth=1 https://$(cat /run/secrets/GH_TOKEN)@github.com/IMaduwike/telebot-api.git . && \ git lfs pull && \ rm -rf .git # ----------------------------- # Move binary and make executable # ----------------------------- RUN mv telegram-bot-api /usr/local/bin/telegram-bot-api && chmod +x /usr/local/bin/telegram-bot-api # Make sure start.sh is executable RUN chmod +x start.sh # ----------------------------- # Install Node dependencies # ----------------------------- RUN npm install # ----------------------------- # Expose port for the proxy server # ----------------------------- EXPOSE 7860 # ----------------------------- # Start the bot via shell # ----------------------------- CMD ["sh", "./start.sh"]