Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
14790897 committed Apr 9, 2024
2 parents bc5b480 + fee88ff commit 0a4abe8
Show file tree
Hide file tree
Showing 5 changed files with 121 additions and 12 deletions.
28 changes: 28 additions & 0 deletions .github/workflows/cron-docker .yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: Cron 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
13 changes: 2 additions & 11 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -59,14 +59,5 @@ RUN npm install
# 将根目录复制到容器中
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"]
11 changes: 10 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,9 @@ sudo apt-get install -y wget unzip fontconfig locales gconf-service libasound2 l

## 使用方法四:docker 定时运行

克隆仓库,修改.env 或者在`docker-compose.yml`里面设置环境变量,然后运行
### 1.立刻执行

克隆仓库,在`docker-compose.yml`里面设置环境变量,然后运行

```sh
docker-compose up -d
Expand All @@ -54,3 +56,10 @@ sudo apt-get install -y wget unzip fontconfig locales gconf-service libasound2 l
```sh
docker-compose logs -f
```

### 2.定时运行(目前存在问题)

```sh
docker-compose -f cron-docker-compose.yml up -d

```
72 changes: 72 additions & 0 deletions cron-Dockerfile
Original file line number Diff line number Diff line change
@@ -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
9 changes: 9 additions & 0 deletions cron-docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
version: "3.8" # 使用 Docker Compose 文件版本 3.8,根据需要可以更改
services:
cronautoread:
image: 14790897/cron-auto-read:latest
container_name: cron-auto-read
# environment: # 设置环境变量(这里设置后不需要在.env文件中设置)
# USERNAMES: "用户名"
# PASSWORDS: "密码"
restart: unless-stopped # 容器退出时重启策略

0 comments on commit 0a4abe8

Please sign in to comment.