imsyy / DailyHotApi

🔥 今日热榜 API,一个聚合热门数据的 API 接口,支持 RSS 模式 及 Vercel 部署 | 前端页面:https://github.com/imsyy/DailyHot
https://hot.imsyy.top
MIT License
1.32k stars 683 forks source link

docker 镜像的 Hostloc 和 吾爱破解 接口报错:权限不足 #58

Open 80imike opened 4 months ago

80imike commented 4 months ago

问题描述

docker 镜像跑 Hostloc 和 吾爱破解 访问报错,已经是用的最新镜像,报的是权限不足

image image

补充信息

换成 root 用户可能是最直接的解决方法

image

如果能用普通用户,解决权限问题就更好了

imsyy commented 4 months ago

感觉这个还不是最大的问题,现在的问题是使用了 chromium 后内存占用太大了,不知道有什么解决方案 😂

80imike commented 4 months ago

感觉这个还不是最大的问题,现在的问题是使用了 chromium 后内存占用太大了,不知道有什么解决方案 😂

用 chromium 基本 1g 起步,或者看能不能换一种方式

下面是一些优化参考

在 Docker 容器中运行 Chromium 时,内存占用高的问题可能会影响系统性能。以下是一些可能的解决方案和优化建议:

1. 限制内存使用

可以在启动 Docker 容器时限制其内存使用。例如,使用 --memory 选项来限制容器的最大内存使用量:

docker run --memory=1g your-chromium-image

2. 使用无头模式

运行 Chromium 的无头模式可以减少内存和 CPU 的使用。无头模式是指在没有图形用户界面的情况下运行浏览器:

chromium-browser --headless --disable-gpu --remote-debugging-port=9222

3. 禁用不必要的功能

禁用一些不必要的功能和插件可以减少内存使用。例如:

chromium-browser --headless --disable-gpu --disable-software-rasterizer --no-sandbox --disable-dev-shm-usage

解释:

4. 使用较小的共享内存

Docker 默认将 /dev/shm 设为 64MB,这对于 Chromium 可能不够。可以在启动容器时增加共享内存的大小:

docker run --shm-size=1g your-chromium-image

5. 定期重启浏览器

如果 Chromium 长时间运行导致内存泄漏或内存占用不断增加,可以考虑定期重启浏览器实例。

6. 监控和分析内存使用

使用工具监控 Chromium 的内存使用情况,找出内存泄漏或高内存使用的原因。可以使用浏览器内置的开发者工具或外部监控工具。

7. 使用轻量级的浏览器

如果 Chromium 的内存占用问题无法解决,考虑使用更轻量级的浏览器,如 Puppeteer 或其他基于 Chromium 的无头浏览器。

8. 优化代码

如果你在运行自动化测试或网页抓取,优化你的脚本和代码,确保没有不必要的资源占用。

通过以上方法,你可以有效地减少 Docker 容器中 Chromium 的内存占用,提高系统的整体性能。

@imsyy

imsyy commented 4 months ago

目前这两个站点用的 discuz 都限制了 js 抓取,只能用浏览器模拟,先下线这个两个接口吧,等日后找到好方法再说吧