Compare commits
10 Commits
5593442534
...
4e32725279
| Author | SHA1 | Date | |
|---|---|---|---|
| 4e32725279 | |||
| 8649da0b62 | |||
| 454bb1e076 | |||
| 0be7207e07 | |||
| 6011df78d3 | |||
| edecb7bffb | |||
| f25e9ad5b0 | |||
| a7a677247d | |||
| a3f6d0ca1b | |||
| 83cd970765 |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -184,3 +184,4 @@ backup_*.sql
|
||||
# Temporary files
|
||||
*.tmp
|
||||
*.temp
|
||||
data/
|
||||
19
Dockerfile
Normal file
19
Dockerfile
Normal file
@@ -0,0 +1,19 @@
|
||||
FROM bet-base:arm64
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
RUN apt-get update && \
|
||||
apt-get install -y --no-install-recommends tzdata && \
|
||||
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
|
||||
dpkg-reconfigure -f noninteractive tzdata && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
COPY requirements.txt .
|
||||
RUN pip install --no-cache-dir -r requirements.txt
|
||||
|
||||
ENV HTTP_PROXY=http://host.docker.internal:7890
|
||||
|
||||
|
||||
COPY . .
|
||||
|
||||
CMD ["bash"]
|
||||
64
Dockerfile-base
Normal file
64
Dockerfile-base
Normal file
@@ -0,0 +1,64 @@
|
||||
# 指定目标平台
|
||||
# syntax=docker/dockerfile:1
|
||||
FROM python:3.12-slim
|
||||
|
||||
# 设置工作目录
|
||||
WORKDIR /app
|
||||
|
||||
# 安装系统依赖
|
||||
RUN apt-get update && apt-get install -y \
|
||||
wget \
|
||||
gnupg \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# 安装Playwright的依赖
|
||||
RUN apt-get update && apt-get install -y \
|
||||
libnss3 \
|
||||
libnspr4 \
|
||||
libatk1.0-0 \
|
||||
libatk-bridge2.0-0 \
|
||||
libcups2 \
|
||||
libdrm2 \
|
||||
libdbus-1-3 \
|
||||
libxkbcommon0 \
|
||||
libxcomposite1 \
|
||||
libxdamage1 \
|
||||
libxfixes3 \
|
||||
libxrandr2 \
|
||||
libgbm1 \
|
||||
libasound2 \
|
||||
libpango-1.0-0 \
|
||||
libpangocairo-1.0-0 \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# 配置pip源
|
||||
RUN mkdir -p /root/.pip && \
|
||||
echo "[global]" > /root/.pip/pip.conf && \
|
||||
echo "index-url = https://pypi.tuna.tsinghua.edu.cn/simple" >> /root/.pip/pip.conf && \
|
||||
echo "trusted-host = pypi.tuna.tsinghua.edu.cn" >> /root/.pip/pip.conf
|
||||
|
||||
# 更新pip
|
||||
RUN python -m pip install --upgrade pip
|
||||
|
||||
COPY requirements.txt .
|
||||
|
||||
# 安装Python依赖
|
||||
RUN pip install --no-cache-dir -r requirements.txt
|
||||
|
||||
# 预先安装 Playwright 的系统依赖
|
||||
RUN apt-get update && apt-get install -y \
|
||||
xvfb \
|
||||
libopengl0 \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# 安装Playwright浏览器
|
||||
RUN playwright install chromium
|
||||
RUN playwright install-deps
|
||||
|
||||
# 暴露端口
|
||||
EXPOSE 8000
|
||||
|
||||
|
||||
|
||||
# 启动命令
|
||||
CMD ["bash"]
|
||||
@@ -15,7 +15,7 @@ from dao.Database import Database
|
||||
from playwright.sync_api import sync_playwright, Page, BrowserContext, expect
|
||||
from loguru import logger
|
||||
from data_model import MysqlConfig, OddsjamOrderStatus
|
||||
from dingtalk import DingTalkBot
|
||||
from common.dingtalk import DingTalkBot
|
||||
|
||||
webhook = "https://oapi.dingtalk.com/robot/send?access_token=21de667159edadd33172c6ec414a2addf9c6359189350ffd36819d2a20e8a0f4"
|
||||
secret = "SEC43a0fa0b29717f98637a119b92a0bd5f7b2b6da671bdd2bd1279ed8323454d5e"
|
||||
@@ -390,7 +390,7 @@ def get_oddsjam_bet_tracker(ds: str) -> SyncOddsjamBetTracker:
|
||||
oddsjam_bet_tracker = SyncOddsjamBetTracker(
|
||||
login_state_path=login_state_save_path,
|
||||
intercept_response_res_save_path=intercept_response_res_save_path,
|
||||
# headless=True
|
||||
headless=True
|
||||
)
|
||||
return oddsjam_bet_tracker
|
||||
|
||||
@@ -408,9 +408,14 @@ if __name__ == "__main__":
|
||||
import schedule
|
||||
|
||||
# schedule.every().day.at("07:00").do(clear_order_from_oddsjam)
|
||||
UPLOAD_SCHEDULE = os.environ.get("UPLOAD_SCHEDULE", "10:00")
|
||||
PULL_SCHEDULE = os.environ.get("PULL_SCHEDULE", "13:00")
|
||||
logger.info(f"upload schedule: {UPLOAD_SCHEDULE}")
|
||||
logger.info(f"pull schedule: {PULL_SCHEDULE}")
|
||||
|
||||
schedule.every().day.at("11:20").do(pull_data_from_oddsjam_update)
|
||||
schedule.every().day.at("14:00").do(upload_new_bets_data2oddsjam)
|
||||
|
||||
schedule.every().day.at(PULL_SCHEDULE).do(pull_data_from_oddsjam_update)
|
||||
schedule.every().day.at(UPLOAD_SCHEDULE).do(upload_new_bets_data2oddsjam)
|
||||
|
||||
while True:
|
||||
schedule.run_pending()
|
||||
|
||||
71
build-and-push.sh
Executable file
71
build-and-push.sh
Executable file
@@ -0,0 +1,71 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Value Investing App - 构建和推送脚本
|
||||
# 使用 docker 构建镜像并推送到私有仓库
|
||||
|
||||
set -e # 遇到错误立即退出
|
||||
|
||||
# 配置变量
|
||||
IMAGE_NAME="bet"
|
||||
REGISTRY="192.168.0.115:5000"
|
||||
TAG="latest"
|
||||
FULL_IMAGE_NAME="${REGISTRY}/${IMAGE_NAME}:${TAG}"
|
||||
|
||||
echo "========================================="
|
||||
echo "Value Investing App 构建和推送脚本"
|
||||
echo "========================================="
|
||||
|
||||
|
||||
# 构建镜像
|
||||
echo "1. 构建 Docker 镜像..."
|
||||
echo " 镜像名称: ${IMAGE_NAME}"
|
||||
docker build --platform linux/arm64 -t ${IMAGE_NAME} .
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
echo " ✅ 镜像构建成功"
|
||||
else
|
||||
echo " ❌ 镜像构建失败"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 打标签
|
||||
echo "2. 为镜像打标签..."
|
||||
echo " 标签: ${FULL_IMAGE_NAME}"
|
||||
docker tag ${IMAGE_NAME} ${FULL_IMAGE_NAME}
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
echo " ✅ 标签添加成功"
|
||||
else
|
||||
echo " ❌ 标签添加失败"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 推送到私有仓库
|
||||
echo "3. 推送镜像到私有仓库..."
|
||||
echo " 仓库地址: ${REGISTRY}"
|
||||
docker push ${FULL_IMAGE_NAME}
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
echo " ✅ 镜像推送成功"
|
||||
else
|
||||
echo " ❌ 镜像推送失败"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 清理本地镜像(可选)
|
||||
echo "4. 清理临时镜像..."
|
||||
docker rmi ${IMAGE_NAME} || true
|
||||
|
||||
# 显示最终结果
|
||||
echo ""
|
||||
echo "========================================="
|
||||
echo "🎉 构建和推送完成!"
|
||||
echo "========================================="
|
||||
echo "镜像地址: ${FULL_IMAGE_NAME}"
|
||||
echo ""
|
||||
echo "可以使用以下命令运行容器:"
|
||||
echo "docker run -d -p 5000:5000 --name value-investing-container ${FULL_IMAGE_NAME}"
|
||||
echo ""
|
||||
echo "或者在其他机器上拉取镜像:"
|
||||
echo "docker pull ${FULL_IMAGE_NAME}"
|
||||
echo "========================================="
|
||||
@@ -1,7 +1,12 @@
|
||||
pymysql==1.1.1
|
||||
pydantic==2.8.2
|
||||
playwright==1.45.1
|
||||
pymysql>=1.1.1
|
||||
pydantic>=2.8.2
|
||||
playwright>=1.45.1
|
||||
numpy
|
||||
pandas
|
||||
scipy
|
||||
scikit-learn
|
||||
loguru>=0.7.3
|
||||
retry>=0.9.2
|
||||
schedule>=1.2.2
|
||||
requests>=2.32.5
|
||||
pyarrow
|
||||
Reference in New Issue
Block a user