diff --git a/.github/workflows/cron-docker .yml b/.github/workflows/cron-docker .yml new file mode 100644 index 00000000..90f06cfc --- /dev/null +++ b/.github/workflows/cron-docker .yml @@ -0,0 +1,28 @@ +name: AutoRead Docker Image Push + +on: + push: + branches: + - main + +jobs: + build-and-push: + runs-on: ubuntu-latest + + steps: + - name: Check Out Repo + uses: actions/checkout@v2 + + - name: Login to Docker Hub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKER_HUB_USERNAME }} + password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} + + - name: Build and Push Image + uses: docker/build-push-action@v2 + with: + context: ./ + file: ./cron-Dockerfile + push: true + tags: 14790897/cron-auto-read:latest diff --git a/Dockerfile b/Dockerfile index ec6cefb8..5e238350 100644 --- a/Dockerfile +++ b/Dockerfile @@ -59,14 +59,5 @@ RUN npm install # 将你的 Puppeteer 脚本复制到容器中 COPY . . -# 创建一个新的 crontab 文件 -RUN echo "0 3 * * * node /app/pteer.js >> /var/log/cron.log 2>&1" > /etc/cron.d/puppeteer-cron - -# 给 crontab 文件适当的权限 -RUN chmod 0644 /etc/cron.d/puppeteer-cron - -# 将 cron 日志文件的权限设置为可写 -RUN touch /var/log/cron.log && chmod 0666 /var/log/cron.log - -# 将 cron 设置为在前台运行,并将日志输出到控制台 -CMD cron -f && tail -f /var/log/cron.log +# 设置容器启动时运行的命令 +CMD ["node", "/app/pteer.js"] diff --git a/cron-Dockerfile b/cron-Dockerfile new file mode 100644 index 00000000..ec6cefb8 --- /dev/null +++ b/cron-Dockerfile @@ -0,0 +1,72 @@ +# 使用官方 Node.js 作为父镜像 +FROM node:18-slim + +# 设置工作目录 +WORKDIR /app + +# 复制 package.json 和 package-lock.json (如果存在) +COPY package*.json ./ + +# 安装 Puppeteer 依赖 +RUN apt-get update && apt-get install -y \ + cron\ + wget \ + ca-certificates \ + fonts-liberation \ + libappindicator3-1 \ + libasound2 \ + libatk-bridge2.0-0 \ + libatk1.0-0 \ + libc6 \ + libcairo2 \ + libcups2 \ + libdbus-1-3 \ + libexpat1 \ + libfontconfig1 \ + libgbm1 \ + libgcc1 \ + libgdk-pixbuf2.0-0 \ + libglib2.0-0 \ + libgtk-3-0 \ + libnspr4 \ + libnss3 \ + libpango-1.0-0 \ + libpangocairo-1.0-0 \ + libstdc++6 \ + libx11-6 \ + libx11-xcb1 \ + libxcb1 \ + libxcomposite1 \ + libxcursor1 \ + libxdamage1 \ + libxext6 \ + libxfixes3 \ + libxi6 \ + libxrandr2 \ + libxrender1 \ + libxss1 \ + libxtst6 \ + lsb-release \ + xdg-utils \ + --no-install-recommends \ + && rm -rf /var/lib/apt/lists/* +#时区为中国 +ENV TZ=Asia/Shanghai + +# 安装 Node.js 依赖 +RUN npm install + +# 将你的 Puppeteer 脚本复制到容器中 +COPY . . + +# 创建一个新的 crontab 文件 +RUN echo "0 3 * * * node /app/pteer.js >> /var/log/cron.log 2>&1" > /etc/cron.d/puppeteer-cron + +# 给 crontab 文件适当的权限 +RUN chmod 0644 /etc/cron.d/puppeteer-cron + +# 将 cron 日志文件的权限设置为可写 +RUN touch /var/log/cron.log && chmod 0666 /var/log/cron.log + +# 将 cron 设置为在前台运行,并将日志输出到控制台 +CMD cron -f && tail -f /var/log/cron.log diff --git a/cron-docker-compose copy.yml b/cron-docker-compose copy.yml new file mode 100644 index 00000000..c7a43d70 --- /dev/null +++ b/cron-docker-compose copy.yml @@ -0,0 +1,10 @@ +version: "3.8" # 使用 Docker Compose 文件版本 3.8,根 +据需要可以更改 +services: + autoread: + image: 14790897/cron-auto-read:latest + container_name: auto-read + # environment: # 设置环境变量(这里设置后不需要在.env文件中设置) + # USERNAMES: "用户名" + # PASSWORDS: "密码" + restart: unless-stopped # 容器退出时重启策略