# 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"]