45 lines
2.5 KiB
Markdown
45 lines
2.5 KiB
Markdown
# MAAsDocker(个人使用)
|
||
|
||
流程:crontab → 更新 MAAsDocker → Compose 启动一次性容器 → 容器更新 MAAsConfig → 更新 MAA → 重启 ReDroid → 执行任务 → 停止 ReDroid → 容器退出。
|
||
|
||
## 构建
|
||
|
||
开发板目录 `/home/lichx/maas/MAAsDocker`。修改 `.env` 的代理、Git 地址和 ADB 地址后:
|
||
|
||
```sh
|
||
mkdir -p ../state/{home,tmp,logs}
|
||
docker compose build
|
||
docker compose up -d
|
||
docker compose logs -f app
|
||
```
|
||
|
||
Dockerfile 内仍然 `git clone` MAAsConfig,启动时两层仓库都 `git pull --ff-only`。配置和脚本改完需提交、推送到对应仓库;不再靠 rsync 发布配置。pull 遇到分叉或冲突直接报错,不使用 reset --hard 覆盖本地修改。
|
||
|
||
构建下载和 `maa update`、`maa self update` 使用 `.env` 中的代理;拉取自己的 Git 仓库、ADB 和游戏任务不走代理。更新 MAA 失败会打印错误并继续使用已安装版本。MaaEnd 下载 latest 包,随镜像重新构建更新。
|
||
|
||
只面向当前 ARM64 开发板:用户 UID/GID 1001,Docker socket 组 996。容器通过 Docker socket 启停现有 `redroid`,不重建 ReDroid,也不挂载其数据。应用数据、ADB 密钥、缓存和日志都放在本项目 `state/`。
|
||
|
||
## 定时运行
|
||
|
||
由 lichx 手动加入 crontab(开发板北京时间):
|
||
|
||
```cron
|
||
0 8,16,22 * * * /home/lichx/maas/MAAsDocker/start-docker.sh >> /home/lichx/maas/state/logs/cron.log 2>&1
|
||
```
|
||
|
||
明日方舟沿用 startup → recruit → infrast → fight → mall → award。保留原来的命令重试、重开游戏重试,以及失败后继续尝试其他任务的行为;最后用退出码记录是否发生失败。
|
||
|
||
基本进度通过 `MAA_LOG=info` 显示,`tee` 同时保存到 `state/logs/maa-日期-时间.log`;MAA 内核调试日志另存 `state/arknights/debug/asst.log`。
|
||
|
||
## MaaEnd
|
||
|
||
当前 `.env` 的 `GAMES=arknights`,尚未自动运行 MaaEnd。需要配置时:
|
||
|
||
```sh
|
||
docker compose run --rm app maaend-config
|
||
```
|
||
|
||
保存后,把 `state/maaend-版本/maafw/config/maa_pi_config.json` 的内容更新到 MAAsConfig 仓库的 `MaaEndConfig/maa_pi_config.json`,提交并推送。随后把 `.env` 改为 `GAMES="arknights maaend"`,两种游戏会依次运行,各自结束时停止 ReDroid。
|
||
|
||
MaaEnd 只保留必要适配:补齐 CLI 的资源路径,在 state 中生成 ADB 专用 interface,省略 CLI 不支持的 hotkey 设置导入;保留上游 interface 和默认游戏资源。用户数据随版本保存在 state 中,不自动删除旧版本数据。
|