Dockerfile 部署

This commit is contained in:
hjq
2026-06-12 16:51:03 +08:00
parent 6216548971
commit 59a6571707
4 changed files with 18 additions and 2 deletions

View File

@@ -5,7 +5,6 @@ __pycache__/
.Python .Python
env/ env/
venv/ venv/
.env
.venv .venv
pip-log.txt pip-log.txt
pip-delete-this-directory.txt pip-delete-this-directory.txt

View File

@@ -98,6 +98,13 @@ def fetch_issue_receipt_incremental():
page = get_page(port=9222) page = get_page(port=9222)
try: try:
# 如果是首次打开浏览器(没有保持登录状态),先调用 login
from login import login
log("INFO", "检查登录状态并执行登录...")
if not login(page):
log("ERR", "登录 ERP 系统失败,中止抓取。")
return
log("INFO", f"正在直接跳转到发料单明细页面...") log("INFO", f"正在直接跳转到发料单明细页面...")
page.get("https://yunmes.tftykj.cn/WorkOrdersQuery") page.get("https://yunmes.tftykj.cn/WorkOrdersQuery")
page.wait.load_start() page.wait.load_start()

View File

@@ -56,6 +56,13 @@ def fetch_receipt_details_incremental():
page = get_page(port=9222) page = get_page(port=9222)
try: try:
# 如果是首次打开浏览器(没有保持登录状态),先调用 login
from login import login
log("INFO", "检查登录状态并执行登录...")
if not login(page):
log("ERR", "登录 ERP 系统失败,中止抓取。")
return
TARGET_URL = "https://yunmes.tftykj.cn/ReceiptDetailsCheckFinace" TARGET_URL = "https://yunmes.tftykj.cn/ReceiptDetailsCheckFinace"
log("INFO", f"正在直接访问目标页面: {TARGET_URL}") log("INFO", f"正在直接访问目标页面: {TARGET_URL}")
page.get(TARGET_URL) page.get(TARGET_URL)

View File

@@ -42,10 +42,13 @@ def dump_page_state(page: ChromiumPage, label: str = ""):
# ── 浏览器 ──────────────────────────────────────────────────────────────────── # ── 浏览器 ────────────────────────────────────────────────────────────────────
def get_page(headless: bool = False, port: int = 9222) -> ChromiumPage: def get_page(headless: bool = False, port: int = 9222) -> ChromiumPage:
co = ChromiumOptions() co = ChromiumOptions()
if headless: # 强制在生产环境下使用无头模式
is_docker = os.path.exists('/.dockerenv')
if headless or is_docker:
co.set_argument("--headless=new") co.set_argument("--headless=new")
co.set_argument("--disable-blink-features=AutomationControlled") co.set_argument("--disable-blink-features=AutomationControlled")
co.set_argument("--no-sandbox") co.set_argument("--no-sandbox")
co.set_argument("--disable-dev-shm-usage") # 增加这个参数防止容器内存不足
co.set_argument("--window-size=1440,900") co.set_argument("--window-size=1440,900")
co.set_local_port(port) co.set_local_port(port)
return ChromiumPage(co) return ChromiumPage(co)