# YuanRong ARM64 构建镜像示例
# 此文件作为参考,说明构建镜像需要包含的依赖
# 请根据你的实际镜像进行调整

FROM ubuntu:24.04

# 设置平台
ARG TARGETPLATFORM=linux/arm64
ARG TARGETARCH=arm64

# 设置非交互模式
ENV DEBIAN_FRONTEND=noninteractive

# 安装基础依赖
RUN apt-get update && apt-get install -y --no-install-recommends \
    # 构建工具
    build-essential \
    cmake \
    ninja-build \
    pkg-config \
    git \
    wget \
    curl \
    ca-certificates \
    # Python
    python3 \
    python3-pip \
    python3-dev \
    python3-venv \
    # Java
    openjdk-17-jdk \
    # Go
    golang-1.21 \
    # C++ 依赖
    libssl-dev \
    libcurl4-openssl-dev \
    libboost-all-dev \
    libprotobuf-dev \
    protobuf-compiler \
    libgrpc++-dev \
    libgtest-dev \
    zlib1g-dev \
    # 其他
    rsync \
    # 华为云 OBS 上传工具
    awscli \
    jq \
    unzip \
    && rm -rf /var/lib/apt/lists/*

# 安装 Bazel (ARM64)
ARG BAZEL_VERSION=6.0.0
RUN wget -O /usr/local/bin/bazel \
    https://github.com/bazelbuild/bazel/releases/download/${BAZEL_VERSION}/bazel-${BAZEL_VERSION}-linux-arm64 \
    && chmod +x /usr/local/bin/bazel

# 配置 Go
RUN ln -sf /usr/lib/go-1.21/bin/go /usr/local/bin/go && \
    ln -sf /usr/lib/go-1.21/bin/gofmt /usr/local/bin/gofmt

# 配置 Python
RUN update-alternatives --install /usr/bin/python python /usr/bin/python3 1 && \
    update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1

# 安装 Python 依赖
RUN pip3 install --no-cache-dir --upgrade \
    pip \
    setuptools \
    wheel \
    pytest \
    coverage

# 创建工作目录
WORKDIR /workspace

# 设置环境变量
ENV GO111MODULE=on \
    CGO_ENABLED=1 \
    GOOS=linux \
    GOARCH=arm64

# 验证安装
RUN echo "=== 构建环境信息 ===" && \
    uname -a && \
    echo "Go: $(go version)" && \
    echo "Python: $(python3 --version)" && \
    echo "Bazel: $(bazel version | head -1)" && \
    echo "CMake: $(cmake --version | head -1)" && \
    echo "GCC: $(gcc --version | head -1)"

CMD ["/bin/bash"]