Skip to content

Commit

Permalink
ci: cron docker
Browse files Browse the repository at this point in the history
  • Loading branch information
14790897 committed Apr 8, 2024
1 parent a0a13e6 commit 3cbbaa4
Show file tree
Hide file tree
Showing 4 changed files with 112 additions and 11 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: 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
# 将你的 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"]
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
10 changes: 10 additions & 0 deletions cron-docker-compose copy.yml
Original file line number Diff line number Diff line change
@@ -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 # 容器退出时重启策略

0 comments on commit 3cbbaa4

Please sign in to comment.