如何在 Arch Linux / ImmortalWrt 上使用 Docker 运行碧蓝航线脚本 ALAS

发布日期:2024/09/28 | 最近修改:2026/01/05

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 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.0、pywin32==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

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

  1. PC 安装 socat
    sudo pacman -S socat
  2. PC 端口转发
    socat TCP-LISTEN:5555,fork TCP:WaydroidIP:5555
  3. ALAS 中模拟器 Serial 填写
    PCIP:5555

查看 WaydroidIP

waydroid status

反和谐

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

false → true