Skip to content

Docker中无法更新之前版本是正常的 #5899

Description

@ReyXiao

在提问之前...

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

描述你的问题

Docker中无法更新,之前版本是正常的,就是最近的一次更新后就无法使用了

═══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════
                                                         START                                                         
═══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════
2026-08-18 11:03:44.351 | INFO | <<< LAUNCHER CONFIG >>>                                                               
2026-08-18 11:03:44.355 | INFO | [Host] 0.0.0.0                                                                        
2026-08-18 11:03:44.357 | INFO | [Port] 22267                                                                          
2026-08-18 11:03:44.359 | INFO | [SSL] False                                                                           
2026-08-18 11:03:44.361 | INFO | [Electron] False                                                                      
2026-08-18 11:03:44.363 | INFO | [Reload] True                                                                         
2026-08-18 11:03:44.982 | INFO | Patched ThreadPoolExecutor created                                                    
2026-08-18 11:03:44.989 | INFO | <<< WEBUI CONFIGS >>>                                                                 
2026-08-18 11:03:44.992 | INFO | [Theme] dark                                                                          
2026-08-18 11:03:44.994 | INFO | [Language] zh-CN                                                                      
2026-08-18 11:03:44.996 | INFO | [Password] False                                                                      
2026-08-18 11:03:44.998 | INFO | [CDN] False                                                                           
2026-08-18 11:03:45.000 | INFO | [IS_ON_PHONE_CLOUD] False                                                             
2026-08-18 11:03:45.037 | INFO | Add task <check_update (delay=300)>                                                   
2026-08-18 11:03:45.041 | INFO | Add task <schedule_update (delay=86400)>                                              
2026-08-18 11:03:45.044 | INFO | Start task handler                                                                    
2026-08-18 11:03:45.046 | INFO | <<< RESTART ALAS >>>                                                                  
2026-08-18 11:03:45.048 | ERROR | Failed to get local commit: [Errno 2] No such file or directory:                     
'/app/AzurLaneAutoScript/.git/refs/remotes/origin/master'                                                              
2026-08-18 11:03:45.052 | ERROR | Failed to get local commit: [Errno 2] No such file or directory:                     
'/app/AzurLaneAutoScript/.git/refs/heads/master'                                                                       
2026-08-18 11:03:45.055 | INFO | Start alas complete                                                                   
2026-08-18 11:03:45.059 | INFO | [CurrentCommit] 3029ca4295629f4384afacedf30429ee22bc81b8                              
2026-08-18 11:03:45.062 | INFO | Fetch url:                                                                            
https://1818706573.cdn.123clouddisk.com/1818706573/pack/LmeSzinc_AzurLaneAutoScript_master/latest.json                 
2026-08-18 11:03:45.435 | INFO | [LatestCommit] d816310324bf686dff3252b37efbb997d9a328a4                               
2026-08-18 11:03:45.446 | INFO | Current repo is behind remote                                                         
2026-08-18 11:03:45.453 | INFO | New update available                                                                  
2026-08-18 11:04:25.678 | INFO | [Server] cn                                                                           
2026-08-18 11:04:25.683 | INFO | Using template config, which is read only                                             
2026-08-18 11:04:26.157 | INFO | Init config watcher done.                                                             
2026-08-18 11:04:26.798 | INFO | Init config watcher done.                                                             
2026-08-18 11:04:26.801 | INFO | Add task <Switch_state_refresh (delay=2)>                                             
2026-08-18 11:04:26.803 | INFO | Add task <set_aside_status (delay=2)>                                                 
2026-08-18 11:04:26.805 | INFO | Add task <Switch_visibility_state_refresh (delay=15)>                                 
2026-08-18 11:04:26.807 | INFO | Add task <Switch_update_state_refresh (delay=1)>                                      
2026-08-18 11:04:26.810 | INFO | Start task handler                                                                    
2026-08-18 11:04:29.344 | ERROR | An internal error occurred in the application                                        
╭───────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────╮
│                                                                                                                     │
│ /usr/local/lib/python3.7/site-packages/pywebio/session/threadbased.py:254 in run                                    │
│                                                                                                                     │
│   251 │   │   │   @wraps(callback)                                                                                  │
│   252 │   │   │   def run(callback):                                                                                │
│   253 │   │   │   │   try:                                                                                          │
│ ❱ 254 │   │   │   │   │   callback(event['data'])                                                                   │
│   255 │   │   │   │   except Exception as e:                                                                        │
│   256 │   │   │   │   │   # 子类可能会重写 get_current_session ,所以不要用                                         │
│       ThreadBasedSession.get_current_session 来调用                                                                 │
│   257 │   │   │   │   │   if not isinstance(e, SessionException):                                                   │
│                                                                                                                     │
│ ╭─────────────────────────────────────── locals ───────────────────────────────────────╮                            │
│ │ callback = <function toast.<locals>.<lambda> at 0x7469c84e5440>                      │                            │
│ │        e = TypeError("'NoneType' object is not iterable")                            │                            │
│ │    event = {'event': 'callback', 'task_id': 'CB-<lambda>-tRddlfcTQP', 'data': None}  │                            │
│ │     self = <pywebio.session.threadbased.ThreadBasedSession object at 0x7469c964c790> │                            │
│ ╰──────────────────────────────────────────────────────────────────────────────────────╯                            │
│ /usr/local/lib/python3.7/site-packages/pywebio/output.py:1719 in <lambda>                                           │
│                                                                                                                     │
│   1716 │   │   'success': '#2e7d32'                                                                                 │
│   1717 │   }                                                                                                        │
│   1718 │   color = colors.get(color, color)                                                                         │
│ ❱ 1719 │   callback_id = output_register_callback(lambda _: onclick()) if onclick is not None                       │
│        else None                                                                                                    │
│   1720 │                                                                                                            │
│   1721 │   send_msg(cmd='toast', spec=dict(content=content, duration=int(duration * 1000),                          │
│        position=position,                                                                                           │
│   1722 │   │   │   │   │   │   │   │   │   color=color, callback_id=callback_id))                                   │
│                                                                                                                     │
│ ╭──────────────────────────────── locals ─────────────────────────────────╮                                         │
│ │       _ = None                                                          │                                         │
│ │ onclick = <function AlasGUI.run.<locals>.goto_update at 0x7469c84e5560> │                                         │
│ ╰─────────────────────────────────────────────────────────────────────────╯                                         │
│                                                                                                                     │
│ /app/AzurLaneAutoScript/module/webui/app.py:1255 in goto_update                                                     │
│                                                                                                                     │
│   1252 │   │                                                                                                        │
│   1253 │   │   def goto_update():                                                                                   │
│   1254 │   │   │   self.ui_develop()                                                                                │
│ ❱ 1255 │   │   │   self.dev_update()                                                                                │
│   1256 │   │                                                                                                        │
│   1257 │   │   update_switch = Switch(                                                                              │
│   1258 │   │   │   status={                                                                                         │
│                                                                                                                     │
│ ╭────────────────────────── locals ──────────────────────────╮                                                      │
│ │ self = <module.webui.app.AlasGUI object at 0x7469c9646250> │                                                      │
│ ╰────────────────────────────────────────────────────────────╯                                                      │
│                                                                                                                     │
│ /usr/local/lib/python3.7/site-packages/pywebio/output.py:1796 in wrapper                                            │
│                                                                                                                     │
│   1793 │   │   def wrapper(*args, **kwargs):                                                                        │
│   1794 │   │   │   self.__enter__()                                                                                 │
│   1795 │   │   │   try:                                                                                             │
│ ❱ 1796 │   │   │   │   return func(*args, **kwargs)                                                                 │
│   1797 │   │   │   finally:                                                                                         │
│   1798 │   │   │   │   self.__exit__(None, None, None)                                                              │
│   1799                                                                                                              │
│                                                                                                                     │
│ ╭──────────────────────────── locals ─────────────────────────────╮                                                 │
│ │   args = (<module.webui.app.AlasGUI object at 0x7469c9646250>,) │                                                 │
│ │   func = <function AlasGUI.dev_update at 0x7469c9774b00>        │                                                 │
│ │ kwargs = {}                                                     │                                                 │
│ │   self = <pywebio.output.use_scope_ object at 0x7469c9775c10>   │                                                 │
│ ╰─────────────────────────────────────────────────────────────────╯                                                 │
│                                                                                                                     │
│ /app/AzurLaneAutoScript/module/webui/app.py:949 in dev_update                                                       │
│                                                                                                                     │
│    946 │   │   │   status=u, get_state=lambda: updater.state, name="updater"                                        │
│    947 │   │   )                                                                                                    │
│    948 │   │                                                                                                        │
│ ❱  949 │   │   update_table()                                                                                       │
│    950 │   │   self.task_handler.add(updater_switch.g(), delay=0.5, pending_delete=True)                            │
│    951 │   │                                                                                                        │
│    952 │   │   updater.check_update()                                                                               │
│                                                                                                                     │
│ ╭──────────────────────────────────────── locals ────────────────────────────────────────╮                          │
│ │           self = <module.webui.app.AlasGUI object at 0x7469c9646250>                   │                          │
│ │              u = <function AlasGUI.dev_update.<locals>.u at 0x7469c82904d0>            │                          │
│ │   update_table = <function AlasGUI.dev_update.<locals>.update_table at 0x7469c82909e0> │                          │
│ │ updater_switch = <module.webui.utils.Switch object at 0x7469c830a050>                  │                          │
│ ╰────────────────────────────────────────────────────────────────────────────────────────╯                          │
│                                                                                                                     │
│ /app/AzurLaneAutoScript/module/webui/app.py:830 in update_table                                                     │
│                                                                                                                     │
│    827 │   │   │   │   │   │   "SHA1",                                                                              │
│    828 │   │   │   │   │   │   t("Gui.Update.Author"),                                                              │
│    829 │   │   │   │   │   │   t("Gui.Update.Time"),                                                                │
│ ❱  830 │   │   │   │   │   │   t("Gui.Update.Message"),                                                             │
│    831 │   │   │   │   │   ],                                                                                       │
│    832 │   │   │   │   )                                                                                            │
│    833                                                                                                              │
│                                                                                                                     │
│ ╭────────────────── locals ──────────────────╮                                                                      │
│ │         history = (None, None, None, None) │                                                                      │
│ │    local_commit = (None, None, None, None) │                                                                      │
│ │ upstream_commit = (None, None, None, None) │                                                                      │
│ ╰────────────────────────────────────────────╯                                                                      │
│                                                                                                                     │
│ /usr/local/lib/python3.7/site-packages/pywebio/io_ctrl.py:199 in inner                                              │
│                                                                                                                     │
│   196 │   │   @wraps(func)                                                                                          │
│   197 │   │   def inner(*args, **kwargs):                                                                           │
│   198 │   │   │   try:                                                                                              │
│ ❱ 199 │   │   │   │   return func(*args, **kwargs)                                                                  │
│   200 │   │   │   except Exception:                                                                                 │
│   201 │   │   │   │   # 发生异常,安全地释放 Output 对象                                                            │
│   202 │   │   │   │   params = [content_param] if isinstance(content_param, str) else                               │
│       content_param                                                                                                 │
│                                                                                                                     │
│ ╭──────────────────────────────────────────────────── locals ─────────────────────────────────────────────────────╮ │
│ │          args = ([None, None, None, None],)                                                                     │ │
│ │         bound = OrderedDict([('tdata', [None, None, None, None]), ('header', ['SHA1', '作者', '提交时间',       │ │
│ │                 '提交信息'])])                                                                                  │ │
│ │ content_param = 'tdata'                                                                                         │ │
│ │          func = <function put_table at 0x7469c9ec00e0>                                                          │ │
│ │        kwargs = {'header': ['SHA1', '作者', '提交时间', '提交信息']}                                            │ │
│ │         param = 'tdata'                                                                                         │ │
│ │        params = ['tdata']                                                                                       │ │
│ │           sig = <Signature (tdata, header=None, scope=None, position=-1) -> pywebio.io_ctrl.Output>             │ │
│ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
│                                                                                                                     │
│ /usr/local/lib/python3.7/site-packages/pywebio/output.py:657 in put_table                                           │
│                                                                                                                     │
│    654 │   │   ]                                                                                                    │
│    655 │   │   header = header_                                                                                     │
│    656 │   else:                                                                                                    │
│ ❱  657 │   │   tdata = [list(i) for i in tdata]  # copy data                                                        │
│    658 │                                                                                                            │
│    659 │   if header:                                                                                               │
│    660 │   │   tdata = [header, *tdata]                                                                             │
│                                                                                                                     │
│ ╭────────────────────── locals ───────────────────────╮                                                             │
│ │   header = ['SHA1', '作者', '提交时间', '提交信息'] │                                                             │
│ │ position = -1                                       │                                                             │
│ │    scope = None                                     │                                                             │
│ │    tdata = [None, None, None, None]                 │                                                             │
│ ╰─────────────────────────────────────────────────────╯                                                             │
│                                                                                                                     │
│ /usr/local/lib/python3.7/site-packages/pywebio/output.py:657 in <listcomp>                                          │
│                                                                                                                     │
│    654 │   │   ]                                                                                                    │
│    655 │   │   header = header_                                                                                     │
│    656 │   else:                                                                                                    │
│ ❱  657 │   │   tdata = [list(i) for i in tdata]  # copy data                                                        │
│    658 │                                                                                                            │
│    659 │   if header:                                                                                               │
│    660 │   │   tdata = [header, *tdata]                                                                             │
│                                                                                                                     │
│ ╭─────────────────── locals ────────────────────╮                                                                   │
│ │ .0 = <list_iterator object at 0x7469c830a350> │                                                                   │
│ │  i = None                                     │                                                                   │
│ ╰───────────────────────────────────────────────╯                                                                   │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
TypeError: 'NoneType' object is not iterable                                                                           

如何复现

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

预期行为

No response

相关 Logs


截图

No response

还有别的吗?

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions