services: build: image: ${FLANGE_BUILD_IMAGE:-flange-build} platform: linux/amd64 build: context: . dockerfile: docker/Dockerfile # 普通 App 编译无需特权;系统镜像命令按需显式启用。 privileged: ${FLANGE_BUILD_PRIVILEGED:-false} environment: CCACHE_DIR: /workspace/.build/cache/ccache CCACHE_MAXSIZE: 20G volumes: # 项目目录挂载到容器 - .:/workspace # 源码仓库持久化 - ./.build/sources:/workspace/.build/sources # APT 下载缓存持久化 # 两个源目录与 builder.apt.AptCache.for_tool 保持一致,互斥按实际源路径确定。 - ./.build/cache/apt:/cache/apt # 构建期按需安装依赖时复用 multiarch 软件包索引 - ./.build/cache/apt-lists:/var/lib/apt/lists # 使用仓库当前的官方 HTTPS 源配置,无需因源地址变化重建通用镜像 - ./docker/apt/ubuntu.sources:/etc/apt/sources.list.d/ubuntu.sources:ro # SSH 密钥(挂载到临时位置,entrypoint 复制并修正权限) - ~/.ssh:/tmp/.ssh-host:ro working_dir: /workspace