教程 · 更新于 2026/03

在 Arch Linux / ImmortalWrt 上用 Docker 运行 ALAS

把碧蓝航线脚本 ALAS 塞进 Docker 里跑,顺带解决 Waydroid 的连接问题。 下面的每一步都在本机验证过,可以直接照抄。

想省事的话:我写了一个管理脚本,把安装和后续维护 (更新、看日志、重启容器)都包好了。直接运行:

curl -sSL https://raw.githubusercontent.com/SelandiaNyx/alas-manager-for-arch/main/alas-manager-for-arch.sh -o alas-manager-for-arch.sh && chmod +x alas-manager-for-arch.sh && ./alas-manager-for-arch.sh

项目地址:alas-manager-for-arch

Arch Linux

如果你更喜欢手动配置,按下面的步骤来。

  1. 安装 Docker 和 adb 工具

    sudo pacman -S docker docker-compose android-tools
  2. 启动 Docker 服务

    sudo systemctl enable --now docker
  3. 把当前用户加入 docker 组

    sudo usermod -aG docker $USER
    newgrp docker
  4. 确认 adb 能连上 Waydroid

    waydroid status
    adb connect waydroidIP:5555
    adb devices
  5. 创建工作目录

    mkdir alas-docker
    cd alas-docker
  6. 获取 ALAS 源码

    git clone https://github.com/LmeSzinc/AzurLaneAutoScript.git ./src
  7. 创建 Dockerfile

    FROM python:3.7-slim
    
    RUN apt-get update && apt-get install -y --no-install-recommends \
        wget git adb libgomp1 openssh-client ca-certificates \
        libgl1-mesa-glx libglib2.0-0 libsm6 libxext6 libxrender1 \
        && apt-get clean && rm -rf /var/lib/apt/lists/*
    
    RUN wget -q https://repo.anaconda.com/miniconda/Miniconda3-py313_25.9.1-3-Linux-x86_64.sh \
        -O /tmp/miniconda.sh \
        && bash /tmp/miniconda.sh -b -p /opt/conda \
        && rm /tmp/miniconda.sh
    
    ENV PATH="/opt/conda/bin:${PATH}"
    
    RUN conda config --system --remove channels defaults \
        && conda config --system --add channels conda-forge \
        && conda config --system --set channel_priority strict \
        && conda install -y mamba
    
    WORKDIR /app/AzurLaneAutoScript
    
    COPY src/requirements.txt /tmp/requirements.txt
    
    RUN AV_VERSION=$(grep '^av==' /tmp/requirements.txt | cut -d '=' -f 3) \
        && mamba install -y "python=3.7" "av==$AV_VERSION" \
        && conda clean --all --yes
    
    RUN grep -v '^av==' /tmp/requirements.txt > /tmp/req.txt \
        && pip install --no-cache-dir -r /tmp/req.txt \
        && rm /tmp/requirements.txt /tmp/req.txt
    
    CMD ["python", "gui.py"]
  8. 修改 requirements.txt

    注释掉 av==10.0.0pywin32==301, 并把 requests==2.18.4 改成 requests>=2.20.0,<3

  9. 构建镜像

    docker build -t alas-conda .
  10. 创建 docker-compose.yml

    services:
      alas:
        image: alas-conda
        container_name: alas
        network_mode: host
        volumes:
          - ~/.android:/root/.android
          - ./config:/alas/config
          - ./src:/app/AzurLaneAutoScript
        working_dir: /app/AzurLaneAutoScript
        command: python gui.py
  11. 运行

    docker compose up

    后台运行用 docker compose up -d,停止用 docker compose kill alas

ImmortalWrt

流程基本一致,差异如下。

先安装软件:

opkg install docker docker-compose adb git git-http ca-bundle
  1. PC 上安装 socat

    sudo pacman -S socat
  2. 在 PC 上做端口转发

    socat TCP-LISTEN:5555,fork TCP:WaydroidIP:5555
  3. 在 ALAS 里填写模拟器 Serial

    填成 PCIP:5555 即可。

查看 Waydroid IP

waydroid status

反和谐

sudo waydroid shell
vim /storage/emulated/0/Android/data/com.bilibili.azurlane/files/localization.txt

把文件里的 false 改成 true,然后重启游戏。


本文首发于 2024/09/28,最近一次更新在 2026/03/04。 装 Docker 与编译镜像的坑大半来自 ALAS 官方文档和社区讨论,脚本部分是我自己整理的。