AzurLaneAutoScript icon indicating copy to clipboard operation
AzurLaneAutoScript copied to clipboard

Debian 12 使用 docker 搭建的 alas 无法运行

Open perhydrol opened this issue 2 years ago • 33 comments

在提问之前...

  • [X] 我已经搜索了现有的 issues
  • [X] 我在提问题之前至少花费了 5 分钟来思考和准备
  • [X] 我已经阅读了 Wiki 中的 常见问题(FAQ)
  • [X] 我正在使用最新版的 Alas

描述你的问题

更新 Debian 至 12 后 alas 的 Docker 容器无法运行,已经尝试重新构建镜像依旧无法解决。其他容器,诸如 Nginx、portainer 均运行良好,故推测是 alas 可能有 bug。

无报错日志,alas 会直接退出

如何复现

  1. 前往 '...'
  2. 点击 '....'
  3. 滑动到 '....'
  4. 出现问题

预期行为

No response

相关 Logs

════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════
                                                             START                                                              
════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════
INFO     14:45:07.741 │ Start scheduler loop: ALAS WJL                                                                          
INFO     14:45:07.748 │ [Server] cn                                                                                             
INFO     14:45:07.772 │ Bind task {'Alas', 'General'}                                                                           
INFO     14:45:08.181 │ Server "奥林匹克行动" is available.                                                                     
INFO     14:45:08.187 │ Pending tasks: ['Commission', 'Dorm', 'Reward', 'Main', 'GemsFarming', 'OpsiHazard1Leveling']           
INFO     14:45:08.190 │ [Task] Commission (Enable, 2023-06-11 13:30:24)                                                         
INFO     14:45:08.193 │ Bind task {'Alas', 'Commission', 'General'}                                                             
════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════
                                                             START                                                              
════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════
INFO     14:48:17.268 │ Start scheduler loop: ALAS WJL                                                                          
INFO     14:48:17.273 │ [Server] cn                                                                                             
INFO     14:48:17.295 │ Bind task {'Alas', 'General'}                                                                           
INFO     14:48:17.703 │ Server "奥林匹克行动" is available.                                                                     
INFO     14:48:17.709 │ Pending tasks: ['Commission', 'Dorm', 'Reward', 'Main', 'GemsFarming', 'OpsiHazard1Leveling']           
INFO     14:48:17.712 │ [Task] Commission (Enable, 2023-06-11 13:30:24)                                                         
INFO     14:48:17.715 │ Bind task {'Alas', 'Commission', 'General'}

截图

Snipaste_2023-06-11_14-54-38

还有别的吗?

No response

perhydrol avatar Jun 11 '23 06:06 perhydrol

在什么设备上运行?什么cpu

LmeSzinc avatar Jun 11 '23 10:06 LmeSzinc

云服务器 Intel(R) Xeon(R) Gold 6278C CPU @ 2.60GHz Linux alas 6.1.0-9-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.27-1 (2023-05-08) x86_64 GNU/Linux 这台机器已经正常运行alas一个月了,发生错误前唯一的变化就是从 11 升级到了 12

perhydrol avatar Jun 11 '23 13:06 perhydrol

在 docker 内进入 python 命令行,执行

import mxnet

看看结果

LmeSzinc avatar Jun 11 '23 18:06 LmeSzinc

不好意思,我刚刚从考试周解脱出来。 我换了一台机器,之前的那台回退到 11 后一切正常,~~我在另一台上直接重装的 Debian12。搭建后有新的问题,一直卡在登录界面上。~~ 我也执行了上述命令,如图 图片

perhydrol avatar Jun 21 '23 09:06 perhydrol

你好,我使用Debian12 docker-composes也遇到了这个问题, image

Mozi71 avatar Jun 23 '23 12:06 Mozi71

如果可以的话请给出复现步骤,我这边并不能复现。我目前的环境: Linux debian12 6.1.0-9-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.27-1 (2023-05-08) x86_64 GNU/Linux Docker version 20.10.24+dfsg1, build 297e128 docker-compose version 1.29.2, build unknown

SaarChaffee avatar Jun 23 '23 12:06 SaarChaffee

如果可以的话请给出复现步骤,我这边并不能复现。 Linux debian12 6.1.0-9-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.27-1 (2023-05-08) x86_64 GNU/Linux

git clone https://github.com/LmeSzinc/AzurLaneAutoScript cd AzurLaneAutoScript mv config/deploy.template-docker-cn.yaml config/deploy..yaml docker-compose.yml 中注释'dockerfile: ./Dockerfile'使用‘dockerfile: ./Dockerfile.cn’ docker-compose up 系统环境: root@Debian:~# docker -v Docker version 24.0.2, build cb74dfc root@Debian:~# docker-compose -v Docker Compose version v2.18.1 root@Debian:~# uname -v #1 SMP PREEMPT_DYNAMIC Debian 6.1.27-1 (2023-05-08)

Mozi71 avatar Jun 23 '23 12:06 Mozi71

mv config/deploy.template-docker-cn.yaml config/deploy..yaml这里我多打了个点

Mozi71 avatar Jun 23 '23 12:06 Mozi71

mv config/deploy.template-docker-cn.yaml config/deploy..yaml这里我多打了个点

我按照 docker文档 把我的 docker compose 升级到了v2.19并根据你的步骤使用 v2 来构建容器运行 alas,依然无法复现。

SaarChaffee avatar Jun 23 '23 13:06 SaarChaffee

mv config/deploy.template-docker-cn.yaml config/deploy..yaml这里我多打了个点

我按照 docker文档 把我的 docker compose 升级到了v2.19并根据你的步骤使用 v2 来构建容器运行 alas,依然无法复现。

这太奇怪了,我补充一下,我使用了vmos pro虚拟机,开启了ADB,ALAS里填写了手机局域网ip加adb端口

Mozi71 avatar Jun 23 '23 13:06 Mozi71

我使用github上的不带cn的方式构建,发现界面很流畅,但是无法连接手机;同样的我还使用了群晖docker构建了,带cn的镜像,可以连接手机,但是会报错AttributeError: 'AlasGUI' object has no attribute 'state_switch'

Mozi71 avatar Jun 23 '23 13:06 Mozi71

我在debian12上的alas试着抛出应用发生内部错误 × ╭────────────────────────── Traceback (most recent call last) ───────────────────────────╮ │ │ │ /usr/local/lib/python3.7/site-packages/pywebio/session/threadbased.py:254 in run │ │ │ │ 253 │ │ │ │ try: │ │ ❱ 254 │ │ │ │ │ callback(event['data']) │ │ 255 │ │ │ │ except Exception as e: │ │ │ │ ╭────────────────────────────────────── locals ──────────────────────────────────────╮ │ │ │ callback = <function put_buttons..click_callback at 0x7f158cd12f80> │ │ │ │ e = Exception('quq') │ │ │ │ event = { │ │ │ │ │ 'event': 'callback', │ │ │ │ │ 'task_id': 'CB-click_callback-vSN4iTzoS3', │ │ │ │ │ 'data': 0 │ │ │ │ } │ │ │ │ self = <pywebio.session.threadbased.ThreadBasedSession object at │ │ │ │ 0x7f158c30e3d0> │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────╯ │ │ /usr/local/lib/python3.7/site-packages/pywebio/output.py:801 in click_callback │ │ │ │ 800 │ │ if isinstance(onclick, Sequence): │ │ ❱ 801 │ │ │ return onclickbtn_idx │ │ 802 │ │ else: │ │ │ │ ╭───────────────────────── locals ─────────────────────────╮ │ │ │ btn_idx = 0 │ │ │ │ btns = [ │ │ │ │ │ { │ │ │ │ │ │ 'label': 'Raise exception', │ │ │ │ │ │ 'value': 0, │ │ │ │ │ │ 'color': 'primary', │ │ │ │ │ │ 'disabled': False │ │ │ │ │ } │ │ │ │ ] │ │ │ │ onclick = [<function raise_exception at 0x7f1590497200>] │ │ │ │ values = [''] │ │ │ ╰──────────────────────────────────────────────────────────╯ │ │ │ │ /app/AzurLaneAutoScript/module/webui/utils.py:522 in raise_exception │ │ │ │ 521 │ if x > 0: │ │ ❱ 522 │ │ raise_exception(x - 1) │ │ 523 │ else: │ │ │ │ ╭─ locals ─╮ │ │ │ x = 3 │ │ │ ╰──────────╯ │ │ │ │ /app/AzurLaneAutoScript/module/webui/utils.py:522 in raise_exception │ │ │ │ 521 │ if x > 0: │ │ ❱ 522 │ │ raise_exception(x - 1) │ │ 523 │ else: │ │ │ │ ╭─ locals ─╮ │ │ │ x = 2 │ │ │ ╰──────────╯ │ │ │ │ /app/AzurLaneAutoScript/module/webui/utils.py:522 in raise_exception │ │ │ │ 521 │ if x > 0: │ │ ❱ 522 │ │ raise_exception(x - 1) │ │ 523 │ else: │ │ │ │ ╭─ locals ─╮ │ │ │ x = 1 │ │ │ ╰──────────╯ │ │ │ │ /app/AzurLaneAutoScript/module/webui/utils.py:524 in raise_exception │ │ │ │ 523 │ else: │ │ ❱ 524 │ │ raise Exception("quq") │ │ 525 │ │ │ │ ╭─ locals ─╮ │ │ │ x = 0 │ │ │ ╰──────────╯ │ ╰────────────────────────────────────────────────────────────────────────────────────────╯ Exception: quq

Mozi71 avatar Jun 23 '23 13:06 Mozi71

我不太确定是不是 docker-compose 的问题,因为我一直是手敲命令运行的,不管是一直正常运转的时候还是出错的时候。最后,我的新机器,直接重装的 debian12 也能正常运作。我怀疑是之前直接升级的问题。

docker run --net=host --volume=${SOURCE}/..:/app/AzurLaneAutoScript:rw --interactive --tty --name ${CONTAINER} ${CONTAINER}

@Mozi71 请问你是使用哪一个 dockerfile 构建的呢?在我这直接使用 Dockerfile (不带cn)构建的镜像,在构建时就会报错,因为 netcat 已经是虚包了,需要修改。

Package netcat is a virtual package provided by:
#0 4.337   netcat-openbsd 1.219-1
#0 4.337   netcat-traditional 1.10-47
#0 4.337
#0 4.339 E: Package 'netcat' has no installation candidate

perhydrol avatar Jun 23 '23 14:06 perhydrol

我不太确定是不是 docker-compose 的问题,因为我一直是手敲命令运行的,不管是一直正常运转的时候还是出错的时候。最后,我的新机器,直接重装的 debian12 也能正常运作。我怀疑是之前直接升级的问题。

docker run --net=host --volume=${SOURCE}/..:/app/AzurLaneAutoScript:rw --interactive --tty --name ${CONTAINER} ${CONTAINER}

@Mozi71 请问你是使用哪一个 dockerfile 构建的呢?在我这直接使用 Dockerfile (不带cn)构建的镜像,在构建时就会报错,因为 netcat 已经是虚包了,需要修改。

Package netcat is a virtual package provided by:
#0 4.337   netcat-openbsd 1.219-1
#0 4.337   netcat-traditional 1.10-47
#0 4.337
#0 4.339 E: Package 'netcat' has no installation candidate

我直接使用了AzurLaneAutoScript目录下的docker-compose.yml,编辑了docker-compose.yml以用于Dockerfile.cn构建映像

Mozi71 avatar Jun 23 '23 23:06 Mozi71

@Mozi71 请问你是使用哪一个 dockerfile 构建的呢?在我这直接使用 Dockerfile (不带cn)构建的镜像,在构建时就会报错,因为 netcat 已经是虚包了,需要修改。

当使用 Dockerfile 时,使用的 python:3.7-slim 会随着修订号的更新而更新,实际上是和 python:3.7.17-slim 是一个镜像。这个镜像可以看到已经是基于 Debian12 制作的了,在 Bookworm 的软件仓库中 netcat 没有了所谓的 "dummy" package,也就是 netcat,只剩下 netcat-openbsd 和 netcat-traditional。但是,Alas 现在不再需要使用 netcat 来使用 nc 类的截图,而是直接使用模拟器提供的功能,因此在最新的安装教程中,我们把 netcat 去掉了,对于 Dockerfile 里的 netcat,我们已经证实可以在没有这个软件依赖的情况下使用 nc 类的截图,很快会把它从 Dockerfile 里移除。

SaarChaffee avatar Jun 24 '23 00:06 SaarChaffee

@Mozi71 请问你是使用哪一个 dockerfile 构建的呢?在我这直接使用 Dockerfile (不带cn)构建的镜像,在构建时就会报错,因为 netcat 已经是虚包了,需要修改。

当使用 Dockerfile 时,使用的 python:3.7-slim 会随着修订号的更新而更新,实际上是和 python:3.7.17-slim 是一个镜像。这个镜像可以看到已经是基于 Debian12 制作的了,在 Bookworm 的软件仓库中 netcat 没有了所谓的 "dummy" package,也就是 netcat,只剩下 netcat-openbsd 和 netcat-traditional。但是,Alas 现在不再需要使用 netcat 来使用 nc 类的截图,而是直接使用模拟器提供的功能,因此在最新的安装教程中,我们把 netcat 去掉了,对于 Dockerfile 里的 netcat,我们已经证实可以在没有这个软件依赖的情况下使用 nc 类的截图,很快会把它从 Dockerfile 里移除。

我刚才重新尝试了,debian12 使用了网络镜像安装, docker使用了 curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh docker-compose使用了 sudo curl -L "https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose docker-compose.yml使用了cn,deploy使用了deploy.template-docker-cn.yaml 我成功构建了ALAS,不清楚是否是部分参数配置的问题,每次再调度器启动后,都会陷入错误 image

Mozi71 avatar Jun 24 '23 00:06 Mozi71

日志栏也没有抛出错误

Mozi71 avatar Jun 24 '23 00:06 Mozi71

以上都是在纯净系统内进行的,除必要包外没有额外应用安装或操作

Mozi71 avatar Jun 24 '23 00:06 Mozi71

出现了一样的错误 Intel Celeron J4125 RAM 8GB Ubuntu 22.04.3 LTS (Debian 12 GNU/Linux Distro) Docker version 24.0.5, build ced0996

docker build -t NAME/alas:latest . 报错找不到Cargo,修改Dockerfile后成功build Docker image docker run -v ${PWD}:/app/AzurLaneAutoScript -p 22267:22267 --name alas -it --rm NAME/alas:latest localhost:22267进入web,配置json后运行,发生错误,未出现Error日志

附上Docker image docker pull hoffman616/alas:latest

更新一下 conda create -n alas python==3.7.6 安装依赖后直接python gui.py也出现同样的问题

BadChromium avatar Sep 23 '23 07:09 BadChromium

在 docker 内进入 python 命令行,执行

import mxnet

看看结果

3q, 发现默认build的镜像里面的mxnet确实有问题。pip install mxnet-alas,就可以运行了。debian12运行不了的朋友,可以试试进容器里面重新安装一个mxnet试试。

hadeskaiser avatar Mar 09 '24 12:03 hadeskaiser

在 docker 内进入 python 命令行,执行

import mxnet

看看结果

3q, 发现默认build的镜像里面的mxnet确实有问题。pip install mxnet-alas,就可以运行了。debian12运行不了的朋友,可以试试进容器里面重新安装一个mxnet试试。

您好,您目前是模拟器和ALAS分机运行吗?我目前是台式PC运行蓝叠模拟器,有另外一台linux服务器,构建了alas镜像

Mozi71 avatar Mar 09 '24 14:03 Mozi71

在 docker 内进入 python 命令行,执行

import mxnet

看看结果

3q, 发现默认build的镜像里面的mxnet确实有问题。pip install mxnet-alas,就可以运行了。debian12运行不了的朋友,可以试试进容器里面重新安装一个mxnet试试。

您指的是“docker exec -it alas /bin/bash”——》pip install mxnet-alas吗?

Mozi71 avatar Mar 09 '24 14:03 Mozi71

在 docker 内进入 python 命令行,执行

import mxnet

看看结果

3q, 发现默认build的镜像里面的mxnet确实有问题。pip install mxnet-alas,就可以运行了。debian12运行不了的朋友,可以试试进容器里面重新安装一个mxnet试试。

您指的是“docker exec -it alas /bin/bash”——》pip install mxnet-alas吗?

是的。我是一台报废手机跑游戏,路由器上挂的alas.

hadeskaiser avatar Mar 11 '24 08:03 hadeskaiser